Skip to content

Applying Transducers ​

Scheme Procedure: list-transduce xform f lst ​

Scheme Procedure: list-transduce xform f identity lst ​

Initialize the transducer xform by passing the reducer f to it. If no identity is provided, f runs without arguments to return the reducer identity. It then reduces over lst using the identity as the seed.

If one of the transducers finishes early (such as ttake or tdrop), it communicates this by returning a reduced value, which in the guile implementation is just a value wrapped in a SRFI 9 record type named “reduced”. If such a value is returned by the transducer, list-transduce must stop execution and return an unreduced value immediately.

Scheme Procedure: vector-transduce xform f vec ​

Scheme Procedure: vector-transduce xform f identity vec ​

Scheme Procedure: string-transduce xform f str ​

Scheme Procedure: string-transduce xform f identity str ​

Scheme Procedure: bytevector-u8-transduce xform f bv ​

Scheme Procedure: bytevector-u8-transduce xform f identity bv ​

Scheme Procedure: generator-transduce xform f gen ​

Scheme Procedure: generator-transduce xform f identity gen ​

Same as list-transduce, but for vectors, strings, u8-bytevectors and SRFI-158-styled generators respectively.

Scheme Procedure: port-transduce xform f reader ​

Scheme Procedure: port-transduce xform f reader port ​

Scheme Procedure: port-transduce xform f identity reader port ​

Same as list-transduce but for ports. Called without a port, it reduces over the results of applying reader until the EOF-object is returned, presumably to read from current-input-port. With a port reader is applied to port instead of without any arguments. If identity is provided, that is used as the initial identity in the reduction.