标签: functional-programming mit-scheme structural-equality
在结构平等方面,
为什么(equal? (list 'a 'b))评估为真,但(equal? (list 2 'b) '(2 'b))评估为假?
(equal? (list 'a 'b))
(equal? (list 2 'b) '(2 'b))
答案 0 :(得分:1)
'(2 'b)相当于(list 2 (list 'quote 'b)) - 一个列表,其第一个元素是数字,第二个元素是另一个列表。
'(2 'b)
(list 2 (list 'quote 'b))
它不等于(list 2 'b),因为(list 2 'b)的第二个元素是符号,而符号不等于列表。
(list 2 'b)