文字列を一行ずつ処理する - lisp-cookbook-ja/common-lisp GitHub Wiki

文字列 シーケンス

文字列を一行ずつ処理する

with-input-from-stringマクロを使うことで、文字列から入力ストリームを取得することが出来ます。あとはファイルを1行毎に処理する要領で「read-line による1行取得→1行に対する処理」を繰り返します。

(with-input-from-string (in "abc
def
ghi")
  (loop :for line := (read-line in nil nil) :while line
        :do (print line)))

;-> "abc" 
    "def" 
    "ghi" 
;=> nil