複雑な文字列を作成する - lisp-cookbook-ja/common-lisp GitHub Wiki

文字列

複雑な文字列を作るときは文字列ストリームが便利です。

;; 「, 」で区切られた0から9までの数
(with-output-to-string (s)
  (dotimes (n 10)
    (unless (zerop n)
      (princ ", " s))
    (princ n s)))
;=> "0, 1, 2, 3, 4, 5, 6, 7, 8, 9"

また、formatはとても高機能なので、formatだけでもかなり複雑な文字列を作れます。

;; 空白で区切られた1から10までの数に対応する英単語
(format nil "~{~R~^ ~}" (loop :for i :from 1 :to 10 :collect i))
;=> "one two three four five six seven eight nine ten"