Scheme Request for Implementation 171,
"Transducers,"
by Linus Björnstam,
has gone into "final" status.

The document and an archive of the discussion are available at https://srfi.schemers.org/srfi-171/.

Here's the abstract:

A library implementing transducers — composable algorithmic transformations.  Scheme has many different ways of expressing transformations over different collection types, but they are all unique to whatever base type they work on.  This SRFI proposes a new construct, the transducer, that is oblivious to the context in which it is being used.

Please note that some changes were made after the most recent draft announcement, including "clarifications about reduced values in list-reduce and list-transduce and the removal of generators from the excluded data structures under the Scope headline," as well as clarifications and improvements to markup, punctuation, and wording, and addition of an example.

Here are the diffs:

  https://github.com/scheme-requests-for-implementation/srfi-171/compare/939cedb9..b81fd683

Here are the Git commit descriptions:

  - Apply changes from Linus Björnstam.
  - "reference" => "sample" implementation
  - Improve grammar, punctuation, and mark-up.
  - Correct return value from example.
  - We never published a fourth draft.
  - Removed repeated definition of `string-reduce'.
  - Apply changes from Linus Björnstam.
  - Be consistent about capitalization.
  - Wrap <code></code> around identifiers.
  - Restore paragraph essential to the explanation.
  - Remove redundant line.
  - Fix punctuation.
  - Fix typo.
  - Finalize.

Note that there is more detailed history of Linus's changes available here:

  https://hg.sr.ht/~bjoli/transducers/log

Many thanks to Linus and to everyone who contributed to the discussion of this SRFI.

Regards,


SRFI Editor