home *** CD-ROM | disk | FTP | other *** search
- From: Peter Szolovits <PSZ>
-
- I have a small quarrel with Alan Bawden's statement that "hunks never
- being atoms in Maclisp" is a universally-agreed bug. There are indeed
- useful structures that one would like to build in Lisp that act as CONS
- cells (i.e., CAR and CDR are applicable), but that can have further
- structure. I have sorely missed such objects in Lisp Machine Lisp and
- NIL, where flavor-instances are always atomic, when I wanted to build
- Brand X (interned "list structure" and universal property lists). In
- Maclisp, I could do this using hunks, though even that was not
- completely right because I wanted to be able to disallow RPLACA and
- RPLACD while allowing CAR and CDR, and this was hard, given the hunk
- abstraction. I would, however, love to have non-atomic flavor-instances
-
- The MIT lisp machine system makes some attempt to "support" this sort
- of thing, by sending :CAR, :CDR, etc messages to instances. The result
- is that you get an error about an unclaimed message, rather than one
- about an attempt to take the car of a non-nil atom. LISTP and CONSP
- both still return NIL when applied to an instance. The way to get RPLACA
- (or SETF of CAR), etc to not work is simply to not define methods for doing
- these operations...
-
- Is is not really clear to me what the value of such is, unless you get tired
- of typing too many "(SEND"'s.
-
-
-