[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API
From: |
Moritz Heidkamp |
Subject: |
Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API |
Date: |
Sun, 03 Jun 2012 13:31:12 +0200 |
Alex Shinn <address@hidden> writes:
> First, the srfi-41 vs. lazy-seq comparison in the
> blog post was an apples to oranges comparison
> of a clumsy letrec vs a compact named let. If we
> rewrite the srfi-41 version in the same style as
> the lazy-seq one, then we get:
>
> (define multiples-of-three
> (let next ((n 3))
> (stream-cons n (next (+ n 3)))))
Ah, thanks for pointing this out -- I was really surprised that I
couldn't find a simpler way to express this with SRFI 41. I'll update
the blog article accordingly.
> Now, if we have a whole program or library which
> consistently uses lazy streams instead of lists,
> we can import srfi-41 renaming all the stream-*
> bindings by removing the stream- prefix (this is
> where the drop-prefix you like comes in handy).
> Then you have a normal Scheme library using
> car/cdr/cons etc. which happens to be using
> streams (and you could change the import if
> needed to toggle between the two).
Fair enough. I was actually considering to provide a module which
exports the functions without the `lazy-' prefix, perhaps with a `*'
suffix so that it can be conviently loaded alongside regular Scheme. The
same could be done with SRFI 41, of course. What I don't quite
understand is why SRFI 41 also defines stream-let, stream-lambda etc. Do
you know of a good reason why one would want those?
Moritz
- Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API, (continued)
- Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API, Moritz Heidkamp, 2012/06/02
- Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API, John Cowan, 2012/06/03
- Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API, Alex Shinn, 2012/06/03
- Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API, Peter Danenberg, 2012/06/03
- Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API, Alex Shinn, 2012/06/03
- Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API, Peter Danenberg, 2012/06/03
- Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API, Christian Kellermann, 2012/06/03
- Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API, Peter Danenberg, 2012/06/03
- Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API, Christian Kellermann, 2012/06/03
- Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API, Jim Ursetto, 2012/06/04
- Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API,
Moritz Heidkamp <=
- Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API, Alex Shinn, 2012/06/03
- Re: [Chicken-users] ANN: lazy-seq, a port of Clojure's lazy sequence API, John Cowan, 2012/06/03