Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!sdd.hp.com!spool.mu.edu!uunet!mcsun!corton!ilog!barbes!davis From: davis@barbes.ilog.fr (Harley Davis) Newsgroups: comp.lang.lisp Subject: Re: structures Message-ID: Date: 24 Apr 91 12:43:28 GMT Article-I.D.: barbes.DAVIS.91Apr24144328 References: <1991Apr09.091234.18122@kub.nl> <1991Apr9.202146.18803@Think.COM> <4535@skye.ed.ac.uk> Sender: davis@ilog.fr Organization: ILOG S.A., Gentilly, France Lines: 28 In-reply-to: jmc@DEC-Lite.Stanford.EDU's message of 23 Apr 91 11:34:54 GMT In article jmc@DEC-Lite.Stanford.EDU (John McCarthy) writes: The fact that using slot names as functional arguments requires special hacks in Lisp is a consequence of the Lisp definers of objects blindly following the mistakes of Pascal, etc. CAR and CDR are slot names essentially, and from the very beginning they were treated as function names. There are certain advantages in specifying everything as functions - uniformity of access and ease of implementation change, for example. What I think is needed is a mapping from a datatype to the operations supported by it. For example, (operations pair) ==> (#'car #'cdr). Attaching symbolic names to these operations and providing the mapping from datatypes to these names and from the names to the actual operations is another interesting level. Also, "Lisp" is a little vague. For example, in EuLisp or Le-Lisp version 16, using symbolic slot names for either structures or classes is completely supported by the language. That this needs hacks in CommonLisp should not be generalized to "Lisp". -- Harley Davis -- ------------------------------------------------------------------------------ nom: Harley Davis ILOG S.A. net: davis@ilog.fr 2 Avenue Gallie'ni, BP 85 tel: (33 1) 46 63 66 66 94253 Gentilly Cedex, France