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

文字列

make-stringに長さを指定することで任意の長さの文字列を生成することが可能です。

(make-string 15 :initial-element #\x)
;⇒ "xxxxxxxxxxxxxxx"

また、もちろん"xxxxxxxxxxxxxxx"とそのまま書くことも可能です。 なお、生成されるタイミングにより生成されるオブジェクトも変わってきます。

(defun mkstring ()
  (let ((x "xxxxxxxxxx")     ;READ時に生成
        (y #.(make-string 10 :initial-element #\x)) ;READ時に生成
        (z (make-string 10 :initial-element #\x)))  ;実行時に生成
    (list x y z)))

(mapcar #'eq
        (mkstring)
        (mkstring))
;⇒ (T T NIL)

(mapcar #'equalp
        (mkstring)
        (mkstring))
;⇒ (T T T)