[plt-scheme] Re: Stream comprehensions

From: Mark Engelberg (mark.engelberg at gmail.com)
Date: Mon Jul 2 20:13:38 EDT 2007

I've covered through chapter 15 with him pretty thoroughly, and
touched on other topics throughout the book to tailor things to his
interests.  He has a fairly good handle on the "design recipe", but he
still resists applying the concepts methodically to tackle a problem
that is beyond what he can see in his head.

Most importantly, I still need to do a more complete treatment on the
chapters on mutation, imperative-style progamming, and encapsulation
of state.  I'm not comfortable teaching him this stuff in Haskell.
(On a related note, a few weeks ago, I posted a question to the
Haskell mailing list about memoizing a function for better
performance, because I was having a lot of trouble figuring out how to
do that in Haskell.  I got back some suggestions on how to do it for
simple cases, but for the general case, I was referred to a couple of
PhD theses and research papers.  Sorry, but memoization shouldn't be
that difficult :) . As Matthias would say, Haskell's solution to state
"lacks expressiveness").

He just turned 9 years old, so there's no rush here.  I just continue
to offer him a combination of breadth and depth.  If he wants to learn
Haskell, Python, Scratch, Alice, or whatever, I'm happy to show him.
But I continue to return to Scheme/Htdp, because I feel the depth and
rigor helps to give him a more solid foundation that formalizes the
concepts he's already intuiting through his explorations.  Still, I
can sympathize with his feelings that when "coming back to Scheme",
certain things feel clunky relative to other languages.

I'm eager to get him to the point where he can handle EoPL, because he
always talks about how he wants to create his own programming language
:) .

--Mark



On 7/2/07, Prabhakar Ragde <plragde at uwaterloo.ca> wrote:
> Mark Engelberg wrote:
>
> > 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.
>
> May I ask what you feel he is lacking from HtDP? While my admiration for
> HtDP is more than considerable (I have told several hundred people on
> several occasions that it is the best introductory programming text I
> know of, period), it is not the only route to enlightenment. You may be
> able to set some "subset" puzzles ("How would you do this without using
> X, Y, or Z?") in Haskell to deepen his understanding. Or perhaps work
> through writing an interpreter for a subset of Scheme in Haskell? --PR


Posted on the users mailing list.