[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
named-let proposal
*Sigh* I've said this privately to several people, but it seems time
to state it publically: I have taught a number of freshman (admittedly
at MIT, but I will repeat the experiment this semester at Brandeis)
and have encountered no trouble in teaching named let. The trick
appears to be in introducing things in the following order:
(a) Internal (not incremental) define for making internal loops; a la
Abelson and Sussman book.
(b) Introducing let with many examples as a binding form.
(c) Finally, after the frustration of two weeks of writing loops that
are hard to read because the initial conditions appear at the END of
the program, introducing the name in a let to make the "loop" easier
to read.
I understand that this ordering is repugnant to the folks at Indiana,
but I submit that this form of repugnance doesn't really justify a
language change, and it appears to be the ONLY issue.
One final note: I find it virtually impossible to believe that
students at Indiana can easily and comfortably navigate their way
through the early introduction of lambda and letrec, and then stumble
on named let. Even some of our seniors have trouble reading programs
that use letrec to completely replace internal define!
--Jim Miller