Ports represent character-oriented input/output devices.
|
<port> | (<seq>) | C |
|
open | (t|(t< <port>) x|<str> => <port>) | G |
|
| creates port given port specific spec x. | |
|
close | (x|<port>) | G |
|
| closes and cleanups port. | |
|
| (x|<port>) | M |
|
| noop default. | |
|
WITH-PORT | (WITH-PORT (,name ,port) ,@body) | S |
|
| binds ,name to the value of ,port
during the evaluation of (seq ,@body) and finally
ensures that the port is closed at the end of evaluation. | |
|
eof-object? | (x|<chr> => <log>) | G |
|
<in-port> | (<port>) | C |
|
| input port. | |
|
in | <in-port> | I |
|
| standard input. | |
|
get | (x|<in-port> => <chr>) | G |
|
| returns next available character or eof-object. | |
|
gets | (x|<in-port> => <str>) | G |
|
| returns a line until either reading a newline or eof-object. | |
|
peek | (x|<in-port> => <chr>) | G |
|
| returns next available character if any without advancing
pointer or eof-object. | |
|
ready? | (x|<in-port> => <log>) | G |
|
| returns true iff a character is available. | |
|
<out-port> | (<port>) | C |
|
| output port. | |
|
out | <out-port> | I |
|
| standard output. | |
|
force-out | (x|<out-port>) | G |
|
| ensures that buffers are forced and pending output is completed. | |
|
put | (x|<out-port> e|<chr>) | G |
|
| outputs a single character. | |
|
puts | (x|<out-port> e|<str>) | G |
|
| outputs string. | |
|
newline | (x|<out-port>) | G |
|
| outputs a newline sequence. | |
|
say | (x|<out-port> args|...) | G |
|
| == (do (op puts x (to-str _)) args) | |
|
|
File ports are ports which map to files.
String ports provide port interface mapped onto strings.
|
<str-port> | (<any>) | C |
|
port-contents | (x|<str-port> => <str>) | P |
|
| returns underlying string. | |
|
<str-in-port> | (<str-port> <out-port>) | C |
|
open | (t|(t= <str-in-port>) dat|<str> => <str-in-port>) | M |
|
| creates string in port mapped to string dat. | |
|
port-index | (x|<str-port> => <int>) | P |
|
| returns index from which next character will be read. | |
|
<str-out-port> | (<str-port> <in-port>) | C |
|
open | (t|(t= <str-out-port>) dat|<str> => <str-out-port>) | M |
|
| creates string out port mapped to string dat. | |
|
PORT-TO-STR | (PORT-TO-STR ,name ,@body) | S |
|
| == (let ((,name (open <str-out-port> ""))) ,@body (port-contents ,name)) | |
|
|