( with-output-to-file [ string? string ] [ procedure? thunk ] ) *
thunk ( λ ) *
with-input-from-file, with-output-to-file The file is opened for input or output as if by open-input-file or open-output-file, and the new port is made to be the value returned by current-input-port or current-output-port (as used by (read), (write obj ), and so forth). The thunk is then called with no arguments. When the thunk returns, the port is closed and the previous default is restored. It is an error if thunk does not accept zero arguments. Both procedures return the values yielded by thunk . If an escape procedure is used to escape from the continuation of these procedures, they behave exactly as if the current input or output port had been bound dynamically with parameterize.
( write obj ) ( write obj [ output-port? port ] )
Writes a representation of obj to the given textual output port. Strings that appear in the written representation are enclosed in quotation marks, and within those strings backslash and quotation mark characters are escaped by backslashes. Symbols that contain non-ASCII characters are escaped with vertical lines. Character objects are written using the #\ notation. If obj contains cycles which would cause an infinite loop using the normal written representation, then at least the objects that form part of the cycle must be represented using datum labels as described in section 2.4. Datum labels must not be used if there are no cycles. Implementations may support extended syntax to represent record types or other types that do not have datum representations.
( write-char [ char? char ] ) ( write-char [ char? char ] [ output-port? port ] )
Writes the character char (not an external representation of the character) to the given textual output port and returns an unspecified value.
( write-shared obj ) ( write-shared obj [ output-port? port ] )
The write-shared procedure is the same as write, except that shared structure must be represented using datum labels for all pairs and vectors that appear more than once in the output.
( write-simple obj ) ( write-simple obj [ output-port? port ] )
The write-simple procedure is the same as write, except that shared structure is never represented using datum labels. This can cause write-simple not to terminate if obj contains circular structure.
( xcons d a ) pair?
(lambda (d a) (cons a d)) Of utility only as a value to be conveniently passed to higher-order procedures.
( zip [ list? clist1 ] [ list? clist2 ] ... ) list?
(lambda lists (apply map list lists)). If zip is passed n lists, it returns a list as long as the shortest of these lists, each element of which is an n-element list comprised of the corresponding elements from the parameter lists. At least one of the argument lists must be finite.