[comp.lang.scheme] EdScheme.

ccsed@gdr.bath.ac.uk (Ed Dawes) (07/18/90)

Hi all,
   having only recently become a Schemer, I was wondering if anyone else out 
there has/uses Lambda Publications' EdScheme for the Atari ST/PC/Archimedes.  
If so, how does it compare to other implementations of the language??

Ed Dawes

Email :   Edd @ UK.AC.NISS.MVAXA
        ccsed @ UK.AC.BATH.GDR

bh@anarres.berkeley.EDU (Brian Harvey) (06/04/91)

The people who wrote EdScheme (assuming we're talking about the same
thing--this one is from Florida) also wrote a book, _The_Schemer's_Guide_,
meant to introduce Scheme in precollege education.  I reviewed the book
for a potential publisher and reviewed the software along with it.  Here
is what I said to them about EdScheme:


Good points:

	* printable environments (avoiding circularity problems)
	  and therefore printable procedures.  This is great!  It's
	  a big help in debugging as well as in explaining things.
	  This is my favorite EdScheme feature.

	* Turtle graphics.  This should make the language more fun
	  and more accessible to visual thinkers.

Bad points:

	* Incompatibility with R3RS (the Scheme standard document).
	  Despite the new compatibility mode, many issues are not
	  addressed.  Among these:

		+ lower and upper case distinguished in symbols
		+ delay doesn't memoize
		+ many missing essential procedures:
			eqv? append memq assq max min complex? (and other
			numeric type predicates; note that these are
			required even if the types are not supported)
			abs char? string-length procedure? map
			cadr (and cddr and friends)
		    (maybe more; I didn't try everything)
		+ NOT doesn't accept non-#t/#f args
		+ COND doesn't accept one-expression clauses
			(COND (3)) should return 3
		+ (lambda (a b . args) body) syntax

	* Incompatibility with Abelson and Sussman terminology.
	  Although the standard doesn't say one way or the other,
	  A&S want (atom? '()) to be true, not false.  Also, it would
	  simplify life if () and #f were the same thing, which is
	  permitted by the standard.  That's controversial, though.

Things I have mixed feelings about:

	* The red/black stuff.  [Things that are meant to represent
	  executable process are in black; "data" are in red.]
	  This provides, somewhat artificially,
	  a way to talk about things like the evaluation of numbers and
	  quote forms, and that's good.  But the cost is that it hides
	  a key idea, the fact that programs ARE just data.  This gets
	  awkward when the text ends up saying "Scheme blackens the red
	  FD" and things like that.  In practice, 99% of the time, all
	  that happens is that the user types in black and Scheme types
	  in red, and I bet many students don't understand the colors
	  any more deeply than that.

	* The fact that procedures are not a separate type.  I think it's
	  great that procedures are PRINTABLE like lists, but really they
	  should be atomic (that is, (ATOM? FIRST) should be true), and
	  you shouldn't be able to modify them with set-car! and so on.

70262.630@compuserve.COM (Iain Ferguson) (06/07/91)

Recent discussion of EdScheme does indeed concern a single product, which is 
written and marketed by Schemers Inc of Fort Lauderdale, FL, USA
(EMail: 71020.1774@compuserve.com), and is distributed in Europe by Lambda 
Publications of Swindon, Wiltshire, UK (EMail: 100015.1465@compuserve.com).
As Brian Harvey <bh@anarres.berkeley.edu> notes in his posting on the subject, 
Schemers Inc also offers an introductory CS text (The Schemer's Guide -- TSG) 
aimed at the high school, junior college, university freshman market that uses 
Scheme as its vehicular language.

Here are some comments upon Harvey's remarks:

1.  Both EdScheme and TSG distinguish unevaluated (Scheme) expressions from
    evaluated (data) expressions: Scheme expressions are black and data       
    expressions are red.  Harvey rightly observes that this color-coding 
    is a boon when explaining the evaluation of quote expressions and
    numbers. But, far from disguising Scheme's ability to treat procedures
    as first class objects, color-coding provides the teacher with a
    superlative tool for explaining how it is that Scheme procedures can
    input and output other Scheme procedures.

    In particular, it enables the teacher to clarify the crucial point that
    while the (black) expression '(lambda (x) x)' is NOT a procedure, the 
    (red) result of evaluating it IS.  I wonder how many beginning students 
    fully understand this point?  Armed with a clear and deep understanding,
    my ninth grade students (aged 15) manipulate higher order functions
    with ease.

    Incidentally, I gave my ninth grade class Part B, Section II of the
    1991 College Board Advanced Placement Computer Science exam to do
    without any warning or preparation of any kind, asking them to write
    their answers in Scheme.  (Regretfully, to have earned any credit for
    their efforts they would have had to have worked in Pascal.)  They all 
    found the test easy, in some cases trivial, and most had completed 
    their work in 15 minutes less than the 45 minutes normally allowed.
    And these students have had less than 40 hours of CS instruction,
    whereas the typical AP student is at least 2 years older and has sat
    through 360+ hours.

2.  Harvey alleges that in some instances EdScheme is incompatible with
    Abelson & Sussman's terminology.  A primary goal of TSG -- which is 
    supported by the manner in which EdScheme operates -- is to lay a solid
    foundation of *concepts* that are important in CS in general.  Once the
    concepts are firmly implemented, terminology becomes a trivial surface
    issue.  Students weaned on TSG and EdScheme pick up Abelson & Sussman
    and Springer & Friedman and rapidly adjust to the language and
    conventions used because they have a clear understanding of the
    basic concepts that are under discussion.

3.  One of EdScheme's virtues is its runnability from a floppy on 
    computers that have only modest amounts of memory available.  This
    brings Scheme to a much wider audience than if a hard drive were
    to be required (or even strongly recommended).  It is therefore
    unlikely ever to have the elbow room to be a Scheme implementation
    that is complete in every respect.  Great pains have been taken,
    however, to ensure that it is 100% upwardly compatible.  Learners
    who start out on EdScheme will be able to graduate on to
    implementations that have all the bells and whistles that Harvey
    mentions without having to unlearn anything.  Yet EdScheme is
    powerful enough to be able to accompany them during the period
    of transition to any other Scheme implementation.

Iain Ferguson.

matthias@leto.rice.edu (Matthias Felleisen) (06/08/91)

We have had some of Iain Ferguson's students in our program here at
Rice, and I have to say that they are extremely well-trained. His
students easily adjusted to Abelson & Sussman and Spinger & Friedman
and our own notes as well as Chez Scheme and Iswym, which we use in
our freshman course. EdScheme and its accompanying high-school text
are wonderful materials for preparing high-school students for a
demanding computer science curriculum. I wish we had more high-schools
and teachers like this! Complaints are entirely inappropriate.  --
 -- Matthias Felleisen, Rice University