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.
However, guile does not report modifying a literal list as an error,
and actually modifies it, so this is somewhat rhetorical.
It is not rhetorical since a modified literal list will actually stay
modified when you call the function the next time. Can't happen with
'() though.