Outdated CHICKEN release

This is a manual page for an old and unsupported version of CHICKEN. If you are still using it, please consider migrating to the latest version. You can find the manual for the latest release here.

  1. Outdated CHICKEN release
  2. Unit ports
    1. Input/output port extensions
      1. with-output-to-port
      2. make-input-port
      3. make-output-port
      4. with-error-output-to-port
      5. with-input-from-port
    2. String-port extensions
      1. call-with-input-string
      2. call-with-output-string
      3. with-input-from-string
      4. with-output-to-string
    3. Port iterators
      1. port-for-each
      2. port-map
      3. port-fold
    4. Funky ports
      1. make-broadcast-port
      2. make-concatenated-port

Unit ports

This unit contains various extended port definitions. This unit is used by default, unless the program is compiled with the -explicit-use option.

Input/output port extensions

with-output-to-port

[procedure] (with-output-to-port PORT THUNK)

Call procedure THUNK with the current output-port temporarily bound to PORT.

make-input-port

[procedure] (make-input-port READ READY? CLOSE [PEEK])

Returns a custom input port. Common operations on this port are handled by the given parameters, which should be procedures of no arguments. READ is called when the next character is to be read and should return a character or #!eof. READY? is called when char-ready? is called on this port and should return #t or #f. CLOSE is called when the port is closed. PEEK is called when peek-char is called on this port and should return a character or #!eof. if the argument PEEK is not given, then READ is used instead and the created port object handles peeking automatically (by calling READ and buffering the character).

make-output-port

[procedure] (make-output-port WRITE CLOSE [FLUSH])

Returns a custom output port. Common operations on this port are handled by the given parameters, which should be procedures. WRITE is called when output is sent to the port and receives a single argument, a string. CLOSE is called when the port is closed and should be a procedure of no arguments. FLUSH (if provided) is called for flushing the output port.

with-error-output-to-port

[procedure] (with-error-output-to-port PORT THUNK)

Call procedure THUNK with the current error output-port temporarily bound to PORT.

with-input-from-port

[procedure] (with-input-from-port PORT THUNK)

Call procedure THUNK with the current input-port temporarily bound to PORT.

String-port extensions

call-with-input-string

[procedure] (call-with-input-string STRING PROC)

Calls the procedure PROC with a single argument that is a string-input-port with the contents of STRING.

call-with-output-string

[procedure] (call-with-output-string PROC)

Calls the procedure PROC with a single argument that is a string-output-port. Returns the accumulated output-string.

with-input-from-string

[procedure] (with-input-from-string STRING THUNK)

Call procedure THUNK with the current input-port temporarily bound to an input-string-port with the contents of STRING.

with-output-to-string

[procedure] (with-output-to-string THUNK)

Call procedure THUNK with the current output-port temporarily bound to a string-output-port and return the accumulated output string.

Port iterators

port-for-each

[procedure] (port-for-each FN THUNK)

Apply FN to successive results of calling the zero argument procedure THUNK until it returns #!eof, discarding the results.

port-map

[procedure] (port-map FN THUNK)

Apply FN to successive results of calling the zero argument procedure THUNK until it returns #!eof, returning a list of the collected results.

port-fold

[procedure] (port-map FN ACC THUNK)

Apply FN to successive results of calling the zero argument procedure THUNK, passing the ACC value as the second argument. The FN result becomes the new ACC value. When THUNK returns #!eof, the last FN result is returned.

Funky ports

make-broadcast-port

[procedure] (make-broadcast-port PORT ...)

Returns a custom output port that emits everything written into it to the ports given as PORT .... Closing the broadcast port does not close any of the argument ports.

make-concatenated-port

[procedure] (make-concatenated-port PORT1 PORT2 ...)

Returns a custom input port that reads its input from PORT1, until it is empty, then from PORT2 and so on. Closing the concatenated port does not close any of the argument ports.

Previous: Unit data-structures

Next: Unit files