On Fri 10 Dec 2010 12:22, self <lis...@163.com> writes: > scheme@(guile-user)> (eq? 'abc 'abc) > $1 = #t > scheme@(guile-user)> (eq? '(+ x 1) '(+ x 1)) > $2 = #f > > why $1 is true and $2 is false? > when I looked for 'quoting' in the r6rs > I found it: > Different constants that are the value of a quote expression may share the > same locations
*May* is the crucial word here. May, but not *must*. Implementations are free to allocate identical quoted lists in the same place, or in different places. If they are in different places, they are not eq?. Andy -- http://wingolog.org/