12.5 Writing
(write datum [out]) → void? |
datum : any/c |
out : output-port? = (current-output-port) |
See The Printer for more information about the default printer. In particular, note that write may require memory proportional to the depth of the value being printed, due to the initial cycle check.
Examples: |
> (write 'hi) |
hi |
> (write (lambda (n) n)) |
#<procedure> |
> (define o (open-output-string)) |
> (write "hello" o) |
> (get-output-string o) |
"\"hello\"" |
(display datum [out]) → void? |
datum : any/c |
out : output-port? = (current-output-port) |
See The Printer for more information about the default printer. In particular, note that display may require memory proportional to the depth of the value being printed, due to the initial cycle check.
(print datum [out]) → void? |
datum : any/c |
out : output-port? = (current-output-port) |
The rationale for providing print is that display and write both have relatively standard output conventions, and this standardization restricts the ways that an environment can change the behavior of these procedures. No output conventions should be assumed for print, so that environments are free to modify the actual output generated by print in any way.
(fprintf out form v ) → void? |
out : output-port? |
form : string? |
v : any/c |
~n or ~% prints a newline, the same as \n
~a or ~A displays the next argument among the vs
~s or ~S writes the next argument among the vs
~v or ~V prints the next argument among the vs
~e or ~E outputs the next argument among the vs using the current error value conversion handler (see error-value->string-handler) and current error printing width
~c or ~C write-chars the next argument in vs; if the next argument is not a character, the exn:fail:contract exception is raised
~b or ~B prints the next argument among the vs in binary; if the next argument is not an exact number, the exn:fail:contract exception is raised
~o or ~O prints the next argument among the vs in octal; if the next argument is not an exact number, the exn:fail:contract exception is raised
~x or ~X prints the next argument among the vs in hexadecimal; if the next argument is not an exact number, the exn:fail:contract exception is raised
~~ prints a tilde.
~‹w›, where ‹w› is a whitespace character (see char-whitespace?), skips characters in form until a non-whitespace character is encountered or until a second end-of-line is encountered (whichever happens first). On all platforms, an end-of-line can be #\return, #\newline, or #\return followed immediately by #\newline.
The form string must not contain any ~ that is not one of the above escapes, otherwise the exn:fail:contract exception is raised. When the format string requires more vs than are supplied, the exn:fail:contract exception is raised. Similarly, when more vs are supplied than are used by the format string, the exn:fail:contract exception is raised.
Example: | ||||
| ||||
(3 4) as a string is "(3 4)". |
(let ([o (open-output-string)]) |
(fprintf o form v ...) |
(get-output-string o)) |
Example: |
> (format "~a as a string is ~s.~n" '(3 4) "(3 4)") |
"(3 4) as a string is \"(3 4)\".\n" |
(print-pair-curly-braces) → boolean? |
(print-pair-curly-braces on?) → void? |
on? : any/c |
(print-mpair-curly-braces) → boolean? |
(print-mpair-curly-braces on?) → void? |
on? : any/c |
(print-unreadable) → boolean? |
(print-unreadable on?) → void? |
on? : any/c |
(print-graph) → boolean? |
(print-graph on?) → void? |
on? : any/c |
(print-struct) → boolean? |
(print-struct on?) → void? |
on? : any/c |
(print-vector-length) → boolean? |
(print-vector-length on?) → void? |
on? : any/c |
(print-hash-table) → boolean? |
(print-hash-table on?) → void? |
on? : any/c |
(print-honu) → boolean? |
(print-honu on?) → void? |
on? : any/c |
(current-write-relative-directory) |
→ (or/c (and/c path? complete-path?) #f) |
(current-write-relative-directory path) → void? |
path : (or/c (and/c path-string? complete-path?) #f) |
(port-write-handler out) → (any/c output-port? . -> . any) |
out : output-port? |
(port-write-handler out proc) → void? |
out : output-port? |
proc : (any/c output-port? . -> . any) |
(port-display-handler out) → (any/c output-port? . -> . any) |
out : output-port? |
(port-display-handler out proc) → void? |
out : output-port? |
proc : (any/c output-port? . -> . any) |
(port-print-handler out) → (any/c output-port? . -> . any) |
out : output-port? |
(port-print-handler out proc) → void? |
out : output-port? |
proc : (any/c output-port? . -> . any) |
The default port display and write handlers print Scheme expressions with Scheme’s built-in printer (see The Printer). The default print handler calls the global port print handler (the value of the global-port-print-handler parameter); the default global port print handler is the same as the default write handler.
(global-port-print-handler) → (any/c output-port? . -> . any) |
(global-port-print-handler proc) → void? |
proc : (any/c output-port? . -> . any) |