Clojure - 关于序列的断言,使用 "identical?"
Clojure - Assertions regarding sequences, using "identical?"
在我的程序中,我试图通过编写测试来验证我定义的函数的功能来测试我的程序。我正在测试序列通过我的函数后的相等性。
my-reverse 的定义:
(defn my-reverse [coll]
(if (empty? coll)
[]
(conj
(my-reverse (rest coll))
(first coll)
)
)
)
我不知道为什么我的断言失败了,因为 (my-reverse [1]) returns [1]。
这是断言:
(assert (identical? (my-reverse [1]) [1]))
提前谢谢大家!
identical?
只有 returns true
如果参数引用同一个对象,如果您的 my-reverse
函数构造一个新列表,则不会出现这种情况。你可以只使用 =
:
(assert (= (my-reverse [1]) [1]))
在我的程序中,我试图通过编写测试来验证我定义的函数的功能来测试我的程序。我正在测试序列通过我的函数后的相等性。
my-reverse 的定义:
(defn my-reverse [coll]
(if (empty? coll)
[]
(conj
(my-reverse (rest coll))
(first coll)
)
)
)
我不知道为什么我的断言失败了,因为 (my-reverse [1]) returns [1]。 这是断言:
(assert (identical? (my-reverse [1]) [1]))
提前谢谢大家!
identical?
只有 returns true
如果参数引用同一个对象,如果您的 my-reverse
函数构造一个新列表,则不会出现这种情况。你可以只使用 =
:
(assert (= (my-reverse [1]) [1]))