方案列表等价比较

时间:2009-09-20 10:34:40

标签: list comparison lisp scheme

您好我需要检查两个列表是否具有相同顺序的相同元素但我无法实现,因为它看起来像方案eq?和eqv?通过引用检查,因此给予错误:

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

如何实现这一目标?

2 个答案:

答案 0 :(得分:16)

site解释了这些运算符之间的区别。但实际上,当您想要比较两个对象的内容时,您希望使用equal?

答案 1 :(得分:10)

似乎是平等的?和eq?是单独的程序,我需要进行相同的检查:

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