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.GDRbh@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