[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Move ambitus print callback to scheme

From: Carl Sorensen
Subject: Re: [PATCH] Move ambitus print callback to scheme
Date: Sat, 29 Aug 2009 10:13:23 -0600

On 8/28/09 10:56 PM, "David Kastrup" <address@hidden> wrote:

> Carl Sorensen <address@hidden> writes:
>> On Aug 28, 2009, at 1:16 PM, "Nicolas Sceaux" <address@hidden>
>> wrote:
>>> According to R5RS, it is an error to modify a literal list.
>>> If a function returns '(), the caller won't be allowed to
>>> apply a modifying function on the result (eg. append!)
>> IIUC, '() is not a literal list, but a constant that represents the
>> empty list.
> It is a literal list in my opinion, but one that happens to have no
> unique and/or modifiable conses.  Append will work just fine on it.

It is *not* a literal list.

Here is the proof:

guile> (define a '(4 5))
guile> (define b '(4 5))
guile> (eq? a b)
guile> (define c '())
guile> (define d '())
guile> (eq? c d)

'(4 5) is a literal list, and thus a is not eq? to b, although it is equal?
to b

On the other hand, c is eq? to d, because '() is a constant, and both c and
d are set to the same constant.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]