[plt-scheme] call-by-value vs. call-by-name?
Jerzy Karczmarczuk writes:
> For me laziness is an algorithmization tool. It permits to transform
> equations into effective codes (perhaps not always terribly efficient,
> but this is another story).
I think this is a big issue. There is a lot that is terribly attractive
about Haskell, but the analysis of time and space efficiency seems to me
to be beyond the reach of most undergraduates [*] at this point in time,
which means most programmers. Needing to know type theory in order to
understand error messages is another issue.
match.ss starts to pull Scheme in the direction of Haskell, as does
Typed Scheme. Lazy Scheme is a beautiful pedagogical tool, but not
intended, I believe, for serious work. Streams are a little too high in
syntactic overhead for effective use in Scheme. But lurking somewhere
close by is something that hits the sweet spot. I fully expect a clever
PLT Scheme graduate student to discover it shortly. --PR
[*] Well. It is beyond me at this point in time, which certainly means
that I don't know how to teach it. Perhaps undergraduates are smarter
than I think.