Read converts external representations of Scheme objects into the objects themselves. That is, it is a parser for the nonterminal datum (see sections External representation and Pairs and lists). Read returns the next object parsable from the given input port, updating port to point to the first character past the end of the external representation of the object. If an end of file is encountered in the input before any characters are found that can begin an object, then an end of file object is returned. The port remains open, and further attempts to read will also return an end of file object. If an end of file is encountered after the beginning of an object's external representation, but the external representation is incomplete and therefore not parsable, an error is signalled. The port argument may be omitted, in which case it defaults to the value returned by current-input-port. It is an error to read from a closed port.
port -- optional port defaults to current-input-port
Back to index