Talk:Write Yourself a Scheme in 48 Hours/Evaluation, Part 2

This seems a bit out of order - we're only told to add car,cdr, cons etc. to the primitives list after we're told to compile and test their use

eq? and equality predicates
The statement that "For our purposes, eq? and eqv? are basically the same: they recognize two items as the same if they print the same, and are fairly slow." doesn't make sense to me. In fact, in Scheme eq? is basically pointer equality (i.e. object identity) and is very fast. It sounds to me like the author has confused eq? and equal?.

Also I know the author has already disclaimed the Scheme developed here's relation to standard Scheme, but the behaviour of "equal?" seen here is also very different to the standard equal? behaviour - consistently, in keeping with the weak typing of this Scheme. For instance  will certainly not return   in standard Scheme, even though these values "could be interpreted the same way" - that's not the job of. Amoe (discuss • contribs) 08:55, 18 May 2011 (UTC)

Source code pragma
As an alternative to adding the -fglasgow-exts to the compiler call, it should be noted that one can add the pragma to the source code:

{-# OPTIONS_GHC -fglasgow-exts #-}

This has the advantage that the user need not remember which flags are needed to compile it. and that the source is basically "documented" as using an extension.

Conditionals: Pattern Matching 2
This might seem too obvious to some, but perhaps it would be worthwhile to add a parenthetical note before or after the code block for the if-clause evaluator clarifying, or reminding the reader, that it needs to be added before the earlier  matcher (since it's our catch-all condition). I got tripped up on this for a bit before the kind folks over at #haskell pointed me in the right direction. --23:29, 15 August 2013 (UTC)