[plt-scheme] Re: plt-scheme type of language

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Fri Dec 11 13:51:11 EST 2009

On Dec 11, 2009, at 1:06 PM, Artyom Shalkhakov wrote:

> Hello Matthias,
> 2009/12/11 Matthias Felleisen <matthias at ccs.neu.edu>:
>> On Dec 11, 2009, at 11:47 AM, Artyom Shalkhakov wrote:
>>> (To make it clear, having read PLAI and done the exercises, I have  
>>> many
>>> questions of the "why"/"why not" sort -- and those you've raised,  
>>> and
>>> I don't know which books to follow.)
>> This is fair and I take half the blame as a non-co-author.
>> I voiced just this kind of complaint when I first studied
>> this kind of course (A Hitchhiker's Guide to the Meta-Universe)
>> and I could and should have fixed this consistently -- but alas,
>> after one or two courses that tried this, I went back to the old
>> mold. Just show them the right way, there are too many ways to
>> do things wrong, and too many silly arguments to take apart.
> I'm not sure I follow, sorry.
> Are you basically saying that a good way to teach students is to show
> them the way that is considered "right" (by majority, by authority,
> etc.)? Does "right" mean "established results" in this context?

Yes. Consider an example such as dynamic scope for variables.

I am pretty sure that very few people even discuss this idea
in their courses. It was a historic mistake, and it got buried
with Lisp. Even if you do throw in a lecture on dynamic scope
when you cover lexical scope, it's just a waste of time --
the disadvantages of dynamic scoping are so obvious that students
just shrug their shoulders and move on. And yet, there are a
few people left out in the world who every so often promote
the idea.

So the problem is this:

-- do we cover a lot of materials on what the community 
    has recognized as good ideas in PL and friends?

-- where do we cut some of this material so that we 
    can explain why these ideas have come to be
    recognized as better than others?

-- if option 2, which material do you think we should cut: 
	-- lexical scope
	-- parameter passing
	-- types	
	-- direct interpreters
	   for state, functions/closures, the whole thing
	-- cps and continuations
	-- converting cps into register machines
	-- macros
-- Matthias


Posted on the users mailing list.