User Tools


Function WRITE-TO-STRING, PRIN1-TO-STRING, PRINC-TO-STRING

Syntax

  • write-to-string object &key array base case circle escape gensym length level lines miser-width pprint-dispatch pretty radix readably right-marginstring * prin1-to-string objectstring * princ-to-string objectstring ====Arguments and Values==== * object - an object. * array - a generalized boolean. * base - a radix. * case - a symbol of type (member :upcase :downcase :capitalize). * circle - a generalized boolean. * escape - a generalized boolean. * gensym - a generalized boolean. * length - a non-negative integer, or nil. * level - a non-negative integer, or nil. * lines - a non-negative integer, or nil. * miser-width - a non-negative integer, or nil. * pprint-dispatch - a pprint dispatch table. * pretty - a generalized boolean. * radix - a generalized boolean. * readably - a generalized boolean. * right-margin - a non-negative integer, or nil. * string - a string. ====Description==== write-to-string, prin1-to-string, and princ-to-string are used to create a string consisting of the printed representation of object. object is effectively printed as if by write, prin1, or princ, respectively, and the characters that would be output are made into a string. write-to-string is the general output function. It has the ability to specify all the parameters applicable to the printing of object. prin1-to-string acts like write-to-string with :escape t, that is, escape characters are written where appropriate. princ-to-string acts like write-to-string with :escape nil :readably nil. Thus no escape characters are written. All other keywords that would be specified to write-to-string are default values when prin1-to-string or princ-to-string is invoked. The meanings and defaults for the keyword arguments to write-to-string are the same as those for write. ====Examples==== <blockquote> (prin1-to-string "abc") → "\"abc\"" (princ-to-string "abc") → "abc" </blockquote> ====Side Effects==== None. ====Affected By==== *print-escape*, *print-radix*, *print-base*, *print-circle*, *print-pretty*, *print-level*, *print-length*, *print-case*, *print-gensym*, *print-array*, *read-default-float-format*. ====Exceptional Situations==== None. ====See Also==== * Function WRITE ====Notes==== <blockquote> (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)) </blockquote> \issue{PRINC-READABLY:X3J13-DEC-91}