Subject: Re: Questions about passing cons as parameter and the behavior of pop
From: rpw3@rpw3.org (Rob Warnock)
Date: Sat, 24 Nov 2007 18:52:31 -0600
Newsgroups: comp.lang.lisp
Message-ID: <3-GdndVKNbTSWtXanZ2dnUVZ_uiknZ2d@speakeasy.net>
Ari Johnson  <iamtheari@gmail.com> wrote:
+---------------
| Kamen TOMOV <kamen@cybuild.com> writes:
| > Zach Beane wrote:
| >> What (first-class) object does POP modify?
| >
| > [POP] modifies the place. As a consequence the place is modified.
| > As the place is an existing object we can conclude that POP modifies
| > an existing object.
| 
| Are places first-class objects?
+---------------

No, not in Common Lisp. However, some Lisps in the past [e.g., Lisp
Machines] have had first-class objects called "locatives" (locations),
which *denote* places, and could be dereferenced to get or set the
place. Briefly:

    (LOCF <place>) ==> <location>

    (LOCATION-REF <location>) ==> <value-of-place>

    (SETF (LOCATION-REF <location>) <new-value>)

There was some discussion of them here in April 1999 which a search
of Google Groups might turn up. <news:sfwg1696kx5.fsf@world.std.com>
was one of the articles, which might help the search.


-Rob

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607