2010/04/07

print, print1, princ, pprint

CL-USER> (let ((v "hoge"))
           (list (print v)
                 (prin1 v)
                 (princ v)
                 (pprint v)))

"hoge" "hoge"hoge
"hoge"("hoge" "hoge" "hoge" NIL)

prin1
関数readに適した出力,すなわちLispプログラムに適した出力を生成する.
princ
prin1がLispプログラムに適した出力を生成するのに対し,princはユーザの見やすい出力を生成する.エスケープ文字も出力されない.
print
先頭に改行が付加される点を除いてprin1と同じである.
pprint
続くスペースを空行にすることを除いてprintと同じである.

(princ "\n\nこんにちわ!")


こんにちわ!
(prin1 "\n\nこんにちわ!")\n\nこんにちわ!

追記

どうでも良いことだけど、やっぱこうかな。
CL-USER> (mapcar (lambda (e)
                   (funcall e "hoge"))
                 `(print princ prin1 pprint))

"hoge" hoge"hoge"
"hoge"("hoge" "hoge" "hoge" NIL)

On Lisp

0 件のコメント:

コメントを投稿