Так или иначе, попробовал набросать подобную функцию сам.
Скорее всего, это г...код, но всё же:
====
(defun split (str delimiter &key (save-empty nil))
(setq delimiter (coerce delimiter 'character))
(let ((result nil) (len (length str)) (j 0) (toappend ""))
(dotimes (i len)
(if (char= (char str i) delimiter)
(progn
(setq toappend (subseq str j i))
(setq result (append result (list toappend)))
(setq j (1+ i))
; если разделитель в конце, добавляем пустоту
(if (= i (1- len)) (setq result (append result (list "")))))
>> Читать далее