'(a b (c)) 和 (list 'a 'b (list 'c)) 有什么区别

What's the different between '(a b (c)) and (list 'a 'b (list 'c))

我正在做练习 2.57,我遇到了这样的问题 '(a b (c)) 和 (list 'a 'b (list 'c)) 之间有什么不同,因为它们在方案解释器中看起来完全一样?

1 ]=> (eq? '(a b (c)) (list 'a 'b (list 'c)))

;Value: #f

1 ]=> '(a b (c))

;Value 2: (a b (c))

1 ]=> (list 'a 'b (list 'c))

;Value 3: (a b (c))

1 ]=>

提示:什么是(eq? (list 1) (list 1))

eq? 仅测试对象 身份 。两个单独构造的列表不是同一个列表,即使它们的内容相同。使用 equal? 表示值相等:

(equal? '(a b (c)) (list 'a 'b (list 'c)))
; => #t