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