% Function WRITE-TO-STRING, PRIN1-TO-STRING, PRINC-TO-STRING
Function WRITE-TO-STRING, PRIN1-TO-STRING, PRINC-TO-STRING
write-to-string object
&key array base case circle
escape gensym length level lines
miser-width pprint-dispatch pretty radix readably
right-margin
=> string
prin1-to-string object => string
princ-to-string object => string
object - オブジェクト
array - generalized-boolean
base - 基数
case - 型(member :upcase :downcase :capitalize)のシンボル
circle - generalized-boolean
escape - generalized-boolean
gensym - generalized-boolean
length - 非負の整数か、nil
level - 非負の整数か、nil
lines - 非負の整数か、nil
miser-width - 非負の整数か、nil
pprint-dispatch - pprintディスパッチテーブル
pretty - generalized-boolean
radix - generalized-boolean
readably - generalized-boolean
right-margin - 非負の整数か、nil
string - 文字列
write-to-string, prin1-to-string, princ-to-stringは、
objectの印刷表現を含む文字列を生成するときに使用されます。
objectは、それぞれwrite, prin1, princによるものとして
効率的に印刷され、
出力の文字が文字列の中に作成されます。
write-to-stringは一般的な出力関数です。
これは指定されたすべてのパラメーターを適切に扱い
objectを印刷する能力があります。
prin1-to-stringは、
write-to-stringに:escape tを付与したように動作し、
これはエスケープ文字が適切な場所に記載されることを意味しています。
princ-to-stringは、
write-to-stringに:escape nil :readably nilを付与したように動作します。
したがってエスケープ文字は記載されません。
prin1-to-stringかprinc-to-stringが実行されたとき、
他の全てのキーワードは
write-to-stringに指定されたもののデフォルト値になります。
この意味は、write-to-stringのキーワード引数のデフォルトは、
writeのものと同じであるということです。
(prin1-to-string "abc") => "\"abc\""
(princ-to-string "abc") => "abc"
なし。
*print-escape*,
*print-radix*,
*print-base*,
*print-circle*,
*print-pretty*,
*print-level*,
*print-length*,
*print-case*,
*print-gensym*,
*print-array*,
*read-default-float-format*
なし。
(write-to-string object {key argument}*)
== (with-output-to-string (#1=#:string-stream)
(write object :stream #1# {key argument}*))
(princ-to-string object)
== (with-output-to-string (string-stream)
(princ object string-stream))
(prin1-to-string object)
== (with-output-to-string (string-stream)
(prin1 object string-stream))