[racket-dev] [plt] Push #25728: master branch updated

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Wed Nov 21 14:33:44 EST 2012

I think these queues are not streams, because they're imperative. That
is, the intent is that `stream-first' and `stream-rest' are functional.

At Wed, 21 Nov 2012 13:28:33 -0600, Robby Findler wrote:
> Oh, I'm not sure. I just picked sequences to fit into for loops.
> (Indeed, the code was mostly there already, I just stuck it on the
> struct.)
> 
> On Wed, Nov 21, 2012 at 1:22 PM, Asumu Takikawa <asumu at ccs.neu.edu> wrote:
> > On 2012-11-21 12:50:49 -0600, Robby Findler wrote:
> >> On Wed, Nov 21, 2012 at 11:52 AM, Asumu Takikawa <asumu at ccs.neu.edu> wrote:
> >> > Should queues also be streams or just sequences?
> >>
> >> I didn't think about this: if you think they should also be streams,
> >> that's okay with me. I'm not really sure of the benefits.
> >
> > I actually asked this because I'm not sure myself. We have two APIs:
> > sequences and streams, but it's not entirely clear to me when to prefer
> > one over the other.
> >
> > Streams support `first`, `rest`, and `empty?`. Sequences don't directly
> > support either `first` or `rest`, but with the `sequence-ref` and
> > `sequence-tail` functions you can emulate them.
> >
> > One advantage of streams is that there's now an easy way to implement
> > them (via the `gen:stream` generic interface).
> >
> > Is there a guiding principle behind these APIs?
> >
> > Cheers,
> > Asumu
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev

Posted on the dev mailing list.