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

SELECTQ vs CASEQ



Wording in the manual?  You mean the LISPM manual?  The LISPM manual's
wording for CASEQ says

The CASEQ special form is provided for Maclisp coompatibility.  It is exactly
the same as SELECTQ.  This is not perfectly compatible with MacLisp, because
SELECTQ accepts OTHERWISE as well as T where CASEQ would not accept OTHERWISE,
*** and because MACLISP does some error-checking that SELECTQ does not. ***
Maclisp programs that use CASEQ will work correctly so long as they don't use
the symbol OTHERWISE as the key.

PLEASE NOTE THAT NO CHANGE TO ANY SEMANTICS IS BEING MADE!  Also please note
that what is being repaired here is the incompatibility between MacLISP's
SELECTQ and the LISPM one.  MACLISP's old SELECTQ was WRONG, because
it used CASEQ, which did some 'error checking', which was WRONG in the context
of SELECTQ.  Implementing CASEQ in terms of SELECTQ on a machine with fixnums
as part of the pointer produces something which behaves almost like CASEQ in
MACLISP.  The reverse is simply not true.