1

次のコードで #f 出力が得られるのはなぜでしょうか。

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

リストを eq? で比較するとき、すべての値とその順序が同じかどうかを見るか、それとも 2 つのリストが同じリストかどうかを見るか? 誰かがそれを説明できますか?

ありがとう

4

1 に答える 1

2

この関数eq?は、「2 つのリストが同じリストであるか」を調べます。一方、equal?「すべての値とその順序が同じかどうか」を調べます。で、あるCと思いeq?ます==equal?while (l1 && l2 && equal (l1.item, l2.item) ...

于 2013-04-28T16:42:01.567 に答える