Re: #f and '()

Per Bothner (bothner@deneb.cygnus.com)
Tue, 13 Aug 1996 09:22:43 -0700

> EQ needs to be fast, and it needs to be
> hard-coded by a C macro in the Emacs source; solutions that translate
> it into a complex Scheme expression are not workable.

The Scheme eq?, the ELisp eq, and the Emacs C EQ are 3 different things.
The proposal would keep:
#define EQ(x,y) ((x)==(y))
and implement Scheme eq? using EQ. However, ELisp eq would be
more complicated. I think this can work, but I agree this is
not ideal.

My inclination is that Elisp 'nil and '() map into the same
object as the Scheme '(). The ELisp primitives would never
generate the Scheme values #t or (the Scheme) version of 'nil.
The ELisp primitvives treat #t as a symbol, while the Scheme
primitives do not. This allows ELisp lists to be the same
as Scheme lists, though ELisp booleans and symbols are not
the same as Scheme booleans and symbols.

--Per Bothner
Cygnus Support bothner@cygnus.com