1

我想知道为什么下面的代码给出了#f 输出:

=> (define a (cons 3 '()))
=> (define a (cons 3 '()))
=> (eq? a b)
;Value: #f

将列表与 eq? 进行比较时,我们是查看所有值及其顺序是否相同,还是查看两个列表是否是同一个列表?有人可以解释一下吗?

谢谢

4

1 回答 1

2

该函数eq?查看'两个列表是否是同一个列表';而equal?查看“所有值及其顺序是否相同”。在C, 认为eq?==但是equal?while (l1 && l2 && equal (l1.item, l2.item) ...

于 2013-04-28T16:42:01.567 回答