Newsgroups: comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!fas-news.harvard.edu!newspump.wustl.edu!news.ecn.bgu.edu!vixen.cso.uiuc.edu!sdd.hp.com!night.primate.wisc.edu!aplcenmp!hall
From: hall@aplcenmp.apl.jhu.edu (Marty Hall)
Subject: Re: self-evaluating non-atomic forms
Message-ID: <DG8LM0.6J9@aplcenmp.apl.jhu.edu>
Organization: JHU/APL AI Lab, Hopkins P/T CS Faculty
References: <453r6i$448@kernighan.cs.umass.edu> <459d3k$1pm@caleddon.dircon.co.uk> <GEERT.95Oct10132014@sparc.aie.nl>
Date: Tue, 10 Oct 1995 14:29:59 GMT
Lines: 23

In article <GEERT.95Oct10132014@sparc.aie.nl> geert@sparc.aie.nl 
(Geert-Jan van Opdorp) writes:

[Self-evaluating non-atomic Lisp form]
>Certainly the 'Goedel constructions' of the
>origenal posting are the most charming ones,
>but shorter is:
>
>#1=(quote #1#)
>
>i.e. the form you get after evaluating
>(let ((answer '(quote)))
>   (setf (cdr answer) answer) 
>   )

Hmm, it seems to me that if you were allowed to rely on earlier side
effects, then defining the function foo such that (foo) returns (foo)
is easier and shorter. But IMHO "a Lisp form that evaluates to xxxx"
means one that evaluates to xxxx in any legal Lisp environment, so you
can't count on side effects having already happened. :-)

						- Marty
(proclaim '(inline skates))
