[plt-scheme] Stream comprehensions

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Mon Jul 2 16:46:24 EDT 2007

Don't hand your son the fish. Teach him how to fish, i.e., show him  
macros. Then move him back to Haskell :-)

-- Matthias

P.S. I am serious. Use this as a teaching moment.




On Jul 2, 2007, at 4:29 PM, Mark Engelberg wrote:

> So a few months ago, my son started working on the Project Euler
> problems in Scheme.  After solving a few of the problems, he
> particularly enjoyed going through the forums, asking me to explain to
> him the solutions in the other programming languages.  He was struck
> by the brevity of the Haskell solutions, and begged me to teach him
> some Haskell.
>
> So for the past couple of months, he's been working the problems in  
> Haskell.
>
> Now, I'm trying to move him back to Scheme to continue Htdp; problem
> is, he's been spoiled by some of the niceties of Haskell.  In
> particular, the ease of working with large or possibly infinite lists
> lazily, and using comprehensions to express complex cartesian
> products, maps and filters elegantly.
>
> Swindle's comprehension syntax is extremely close to Haskell's, so
> this is a pretty easy switch.
>
> For lazy lists, there are a few possibilities.
> 1.  Use the streams in srfi40.
> 2.  Show him how to implement streams himself using force/delay.
> 3.  Switch to Lazy Scheme language level and use regular lists.
>
> The problem is that none of these options seem to interact well with
> comprehensions.
>
> So... does anyone know of a comprehension macro system for DrScheme
> that interacts seamlessly with streams?  Should I roll my own using
> the collect macro in swindle, or has this already been done?
>
> Thanks,
>
> Mark
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme



Posted on the users mailing list.