clojure中向量的相等性



我试图解决这个问题

  • https://www.4clojure.com/problem/32

并且我意识到这个语句给出的输出为false。

(= (#(into [] (distinct %)) [1 2 3]) 
'(1 1 2 2 3 3))

这应该是真的,因为函数也返回相同的向量。

有人能向我解释一下为什么这是假的吗?

你问的问题与你提到的问题无关,你自己的答案可以解决这个问题。单看这个问题。。。

  • 正如rascio所评论的,您将distinct应用于错误的序列
  • 此外,您可以将=应用于任意两个序列。你没有以将CCD_ 3产生的惰性序列转换为向量

因此,以下内容就足够了。。。

(= [1 2 3] (distinct '(1 1 2 2 3 3)))
=> true

从评论中,我发现我错误地使用了distinct方法,因此决定使用repeat方法来获得答案,即:

mapcat #(repeat 2 %)

最新更新