| call-with-string-output-port(3scm) | Scheme Programmer's Manual | call-with-string-output-port(3scm) |
NAME
call-with-string-output-port - call a procedure with a string output port
LIBRARY
(import (rnrs)) ;R6RS (import (rnrs io ports)) ;R6RS
SYNOPSIS
(call-with-string-output-port proc)
DESCRIPTION
Creates a textual output port that accumulates the characters written to it and calls proc with that output port as an argument. Whenever proc returns, a string consisting of all of the port's accumulated characters (regardless of the port's current position) is returned and the port is closed.
The port should support the port-position(3scm) and set-port-position!(3scm) operations.
IMPLEMENTATION NOTES
The port may or may not have an associated transcoder; if it does, the transcoder is implementation-dependent.
RETURN VALUES
Returns a single value; a string.
EXAMPLES
(call-with-string-output-port
(lambda (p)
(for-each (lambda (x)
(display x p))
'("Hello " world #\newline))))
=> "Hello world\n"
APPLICATION USAGE
This procedure is commonly used when creating strings piecemeal.
COMPATIBILITY
This procedure is unique to R6RS. It is a wrapper around open-string-output-port(3scm).
ERRORS
This procedure can raise exceptions with the following condition types:
- &assertion (R6RS)
- The wrong number of arguments was passed or an argument was outside its domain. In particular, proc must be a procedure that accepts one argument.
SEE ALSO
call-with-string-output-port(3scm), open-string-output-port(3scm) open-string-input-port(3scm)
STANDARDS
R6RS
HISTORY
This procedure is new to the reworked I/O in R6RS.
AUTHORS
This page is part of the scheme-manpages project. It includes materials from the RnRS documents. More information can be found at https://weinholt.se/scheme/manpages/.
| 2023-02-15 |