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]))