[plt-scheme] running an MzScheme debugger in Emacs?

From: Prabhakar Ragde (plragde at uwaterloo.ca)
Date: Sat Apr 26 19:37:35 EDT 2008

Benjamin L. Russell wrote:

> Control flow is the common thread linking all these together, yet
> mention of it is somehow left out in Section 1.2.1:  Linear Recursion
> and Iteration (see
> http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-11.html#%_sec_1.2.1)
> of SICP.  The resultant "playful programming" then becomes
> programming-without-really-understanding-what-you-are-doing, or the
> sorcerer's apprentice's magic going amok.

It is difficult to motivate tail recursion this early. Following HtDP, 
we teach this in week 11/12 of the first course, as a special case of 
accumulative recursion, but the two motivations, time efficiency (e.g. 
reverse) and space efficiency (e.g. factorial), can only be hand-waved 
at this point. Only halfway through the second course, where we 
introduce the machine model and justify the notion of substitution steps 
as an efficiency measure as well as introduce the stack model to explain 
the semantics of procedures in an imperative language, can we finally 
deliver on that hand-waving. SICP, for all its mind-blowing depth, 
retains this premature optimization from conventional texts that 
introduce loops early. Other functional programming texts (not just 
HtDP, but Bird/Wadler and Hutton) wisely focus on expressivity first. --PR


Posted on the users mailing list.