[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: The revised revised Report



Here are my votes on some of the issues swirling around the Scheme World
these days...

 -- I strongly prefer the term "port."

 -- I prefer the names CAR and CDR to anything else I've heard.  I am
partly motivated by the desire to woo others away from inferior forms of
Lisp; avoiding such changes may help.

 -- I prefer MAP and WALK to MAPCAR and MAPC.  Common Lisp's MAP is a
generalization of MAPCAR, so I don't see any problem there.  WALK is more
meaningful than MAPC.  WALK should be optional; MAP may be either essential
or optional.

 -- Both IF and WHEN are worthwhile.  "One-armed" IF and WHEN should both
be optional.  I use WHEN exclusively for side effects and the choice of the
name helps clarify my intent.  I don't like UNLESS, because it adds nothing
new, but making it optional is OK by me.

 -- I'd like to modify EQV? slightly to align it with Common Lisp's EQL.
I believe the only difference is that EQL "does the right thing" for
character data objects as well as for numbers.  Does anyone oppose this?

 -- I am worried about PRIMITIVE-SYNTAX-EXPAND.  It "feels" like too
little, too late in the game.  I'd rather allow time for this issue to gel
further.

 -- It has been suggested that LAMBDA be the only special form.  Unless we
tackle the subject of macros in detail, I can't imagine subcategorizing
special forms into "real" special forms and "other" special forms, some of
which may be macros.

 -- I prefer named LET to ITERATE or RECURSE.  ITERATE is inadequate, while
RECURSE is poor English.  If we can't agree, lets make named LET and
perhaps one of the alternatives both optional (as Dan and Chris suggest).

 -- Let's drop LIST?.  It's both expensive and unimportant.  Make it
optional if you'd like.

 -- I like READ-CHAR-READY?.

 -- I don't like READ-READY?.  Its implementation would seem to require
buffering all of the characters going into a READ just in case we find they
don't add up to an entire parsable object.  HUNG? has the same problem.

 -- I agree that = and =? shouldn't both be essential.  I'm willing to
switch to the '?' forms if necessary, although I prefer the others for
compatibility with the Abelson and Sussman book and with Common Lisp.

 -- Let's drop #!NULL.  #!FALSE and () suffice.

 -- I'm willing to lose DEFINE! and DEFREC!, as Chris and Dan suggest.

 -- I favor retaining NUMBER?.

 -- OBJECT-HASH and OBJECT-UNHASH should be optional.

 -- I prefer REF over CELL (and CELL over BOX).  It should be optional.  In
our work, we are also concerned about locatives and forwarding pointers, so
it isn't clear to us that REF alone is interesting.

Regards,
David Bartley
-------