GEE/Streams is a C language library extension for Guile, the GNU's Ubiquitous Intelligent Language for Extensions. It implements a replacement for the (ice-9 streams) module distributed with Guile.
If we are not Scheme newbies and we see a form starting with (fold ...): we know immediately the structure of its code. There is a great advantage if we compare this with the time required to understand the control flow of an equivalent explicitly coded form. Streams are an answer to the questions: ``Is it possible to apply a FOLD like procedure to a non--list sequence of values? And what about MAP and FOR-EACH?'' Guile already comes with the (ice-9 streams) module, which allows Scheme level code to iterate over non--list sequences of values. GEE/Streams is a C language re-implementation of the same interface that allows both Scheme and C code to define streams. The advantages upon the pure Scheme module are: * speed, especially with long sequences; * the procedures work with streams, lists and vectors; * (gee misc streams-1) loads GOOPS: a class is defined and bound to the <stream> symbol; that way GOOPS generic functions can dispatch methods for streams (unfortunately there is no way to select a base <sequence> class); streams can be implemented with both a Scheme or C producer function. <https://gna.org/projects/gee> <http://download.gna.org/gee/gee-streams/gee-streams-0.1b5-src.tar.bz2> -- Marco Maggi "Now feel the funk blast!" Rage Against the Machine - "Calm like a bomb" _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://lists.gnu.org/mailman/listinfo/guile-user