home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / bsd_srcs / usr.bin / lisp / lispnews / text0245.txt < prev    next >
Encoding:
Text File  |  1985-11-10  |  1.4 KB  |  27 lines

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