Erik Naggum <erik@naggum.no> wrote:
+---------------
| it's worth noting that (cons 1 2) yields a pointer (!) to a cons cell that
| contains two fixnums, not two pointers.
+---------------
Not in all Lisps. For example, in SIOD Scheme *all* objects are boxed,
thus a cons cell is two pointers, period.
-Rob
p.s. Yes, there is a small amount of magic in the corners that avoids
allocating in the heap for the most common small numbers by preallocating
a few "inums" in fixed locations, and arranging so that arithmetic results
in that range share such an instance if it exists.
p.p.s. And yes, SIOD cons cells also have a type field. But that's not a
Lisp/Scheme requirement either, since you can always use BiBOP for typing.
-----
Rob Warnock, 7L-551 rpw3@sgi.com http://reality.sgi.com/rpw3/
Silicon Graphics, Inc. Phone: 415-933-1673 FAX: 415-933-4392
2011 N. Shoreline Blvd. [after 8/2/1997 ==> 650-933-xxxx]
Mountain View, CA 94043 PP-ASEL-IA