Shammer's Philosophy

My private adversaria

dolist 排除計画 - split 編

背景

文字列の分割 - Shammerismで書いた split-string も dolist を使用していたので、これを使用しないように変更。

新実装

(defun split (base delimiter)
  (let ((x (search delimiter base :start2 (length delimiter))))
    (if (null x)
	(cons base nil)
	(append (cons (subseq base 0 x) nil)
		(split (subseq base (+ x (length delimiter))) delimiter)))))

実行結果

? (split "aaa,,bbb,,ccc,,ddd" ",,")
("aaa" "bbb" "ccc" "ddd")
? (split "Host: 1.1.1.1" ":")
("Host" " 1.1.1.1")
?