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

文字列 シーケンス

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

単純に一文字ずつ繰返しをするのなら loop を使うのが簡単。

(loop :for char :across "abc" 
      :do (princ char)
          (terpri))

;-> a
    b
    c
;=> nil

複雑な処理をする場合には (coerce "foo" 'list) でリストに変換したり、 with-input-from-string を使って処理をしてもよい。文字のリストから文字列への変換には (coerce ... 'string) 関数を使う。