Path: utzoo!attcan!uunet!husc6!soi!chip From: chip@soi.UUCP (Chip Morris) Newsgroups: comp.lang.lisp Subject: Re: #( syntax Summary: Coral is correct Message-ID: <432@soi.UUCP> Date: 12 May 89 14:16:51 GMT References: <8905120152.AA17406@anaconda.Stanford.EDU> Organization: Software Options Inc., Cambridge, Mass. Lines: 24 In article <8905120152.AA17406@anaconda.Stanford.EDU>, ~rit@ANACONDA.STANFORD.EDU (Jean-Francois Rit) writes: > > I came on a strange, to me, feature of coral common lisp 1.2.1: > the following expression (setq toto #(1 2 3)) makes lisp return an error > (cannot eval). However (setq toto '#(1 2 3)) works, and toto is actually the > right vector object. > Both formulation work in lucid. > So what's happening, is the coral implementation wrong? Is it reasonable to > consider the quoted version a common denominator? Coral is OK, and so is Franz Allegro. If a form isn't self-evaluating, i.e. doesn't return itself as a value, then in general it must be quoted. CLtL (Steele) says in section 5.1.1 what the self-evaluating forms are: numbers, characters, strings,bit-vectors, () and NIL, as well as all keywords. So technically anything else must be quoted, including arrays, vectors, and structures. See also "Common Lisp, The Reference", page 665. -- Chip Morris, Senior Engineer US Mail: Software Options, Inc., 22 Hilliard St., Cambridge MA 02138 Internet: chip%soi@harvard.harvard.edu UUCP: ...!harvard!soi!chip Phone: (617) 497-5054