2009-09-20 7 views
9

Witam Muszę sprawdzić, czy dwie listy mają te same elementy w tej samej kolejności, ale nie udało mi się tego osiągnąć, ponieważ wydaje się, że schemat eq? i eqv? sprawdza przez referencję, podając fałszywe:Porównanie równoważnika listy programów

> (eq? (list 1 2 3) (list 1 2 3)) 
#f 
> (eqv? (list 1 2 3) (list 1 2 3)) 
#f 

Jak to osiągnąć?

Odpowiedz

13

Ten site wyjaśnia różnicę między tymi podmiotami. Ale zasadniczo chcesz użyć equal?, gdy chcesz porównać zawartość dwóch obiektów.

+0

dzięki za link JG – Hellnar

7

wydaje się być równa? i eq? gdzie są oddzielne procedury jak potrzebne równe sprawdza:

> (equal? (list 1 2 3) (list 1 2 3)) 
#t