For those who like me are playing with the stream-enabled branch of Clojure, there is a new module stream-utils on clojure.contrib:
http://code.google.com/p/clojure-contrib/source/browse/trunk/src/ clojure/contrib/stream-utils.clj Obviously this is very experimental, and absolutely not ready for use in applications. The module defines a couple of stream transformers and tools for writing stream transformers. Any feedback is welcome! As a result of writing this code, I have one modification request for Clojure's stream support: it would be very convenient if iters were callable, such that one could write (iter eos) instead of (next! iter eos). This would make it possible to use iters directly as an argument to stream. Motivation: a stream transformer involves the steps: stream -> iter -> (transformation) -> generator -> (transformation) - > stream Here "transformation" stands for a function that takes an iter/ generator and returns a new object of the same kind. There are two possible places in this chain to insert a transformation function, either at the iter level or at the generator level. I decided to implement transformations at the generator level, but one could as well do it at the iterator level. But in both cases, there is an addition step iterator->generator that is required only because iterators and generators have different calling interfaces, although they have pretty much the same behaviour. Konrad. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---