This is an example where consensus is hard to reach. While generators and accumulators are certainly easily implementable to be fast, they lead to an imperative, not functional programming style. Thus there use should be minimized IMHO.

Others may disagree (and want to use Scheme more like a conventional language than a mostly purely functional one). So to reach any kind of consensus, the libraries in the collection can only be loosely coupled. This is okay if there are enough adapters.

We could also provide multiple interfaces if it's not too much work. For example, the current Scheme Live code has sha-1-accumulator, sha-1-bytevector, and sha-1-port.

We could have two separate library collections: a functional one, and an imperative one. But they would benefit from sharing a lot of the internals, so I'd prefer to try to have people who prefer each style to try to work together on the same collection. Scheme doesn't have that many people working on portable projects as it stands, and any division cuts that number in half.

A Scheme Live would be a splitting from SRFI (though ideally featuring much the same people and with spec traffic back and forth) but I see that as unavoidable for process reasons which several people have voiced.

Reply via email to