Skip to content

String Ports ​

Scheme Procedure: call-with-output-string proc ​

C Function: scm_call_with_output_string (proc) ​

Calls the one-argument procedure proc with a newly created output port. When the function returns, the string composed of the characters written into the port is returned. proc should not close the port.

Scheme Procedure: call-with-input-string string proc ​

C Function: scm_call_with_input_string (string, proc) ​

Calls the one-argument procedure proc with a newly created input port from which string’s contents may be read. The value yielded by the proc is returned.

Scheme Procedure: with-output-to-string thunk ​

Calls the zero-argument procedure thunk with the current output port set temporarily to a new string port. It returns a string composed of the characters written to the current output.

Scheme Procedure: with-input-from-string string thunk ​

Calls the zero-argument procedure thunk with the current input port set temporarily to a string port opened on the specified string. The value yielded by thunk is returned.

Scheme Procedure: open-input-string str ​

C Function: scm_open_input_string (str) ​

Take a string and return an input port that delivers characters from the string. The port can be closed by close-input-port, though its storage will be reclaimed by the garbage collector if it becomes inaccessible.

Scheme Procedure: open-output-string ​

C Function: scm_open_output_string () ​

Return an output port that will accumulate characters for retrieval by get-output-string. The port can be closed by the procedure close-output-port, though its storage will be reclaimed by the garbage collector if it becomes inaccessible.

Scheme Procedure: get-output-string port ​

C Function: scm_get_output_string (port) ​

Given an output port created by open-output-string, return a string consisting of the characters that have been output to the port so far.

get-output-string must be used before closing port, once closed the string cannot be obtained.

With string ports, the port-encoding is treated differently than other types of ports. When string ports are created, they do not inherit a character encoding from the current locale. They are given a default locale that allows them to handle all valid string characters. Typically one should not modify a string port’s character encoding away from its default. See Encoding.