Vector clojure中向量的相等性

Vector clojure中向量的相等性,vector,clojure,equality,Vector,Clojure,Equality,我试图解决这个问题 我意识到这句话的输出是假的 (=(#)(转换为[](不同的%)[1 2 3]) '(1 1 2 2 3 3)) 这应该是真的,因为函数也返回相同的向量 有人能给我解释一下为什么这是错误的吗?从评论中,我发现我错误地使用了distinct方法,因此决定使用repeat方法得到答案,答案是: mapcat #(repeat 2 %) 你问的问题与你所指的问题无关,而这个问题可以解决。单看这个问题 正如rascio评论的那样,您将distinct应用于错误的 顺序 此外

我试图解决这个问题

我意识到这句话的输出是假的

(=(#)(转换为[](不同的%)[1 2 3])
'(1 1 2 2 3 3))
这应该是真的,因为函数也返回相同的向量


有人能给我解释一下为什么这是错误的吗?

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

mapcat #(repeat 2 %)

你问的问题与你所指的问题无关,而这个问题可以解决。单看这个问题

  • 正如rascio评论的那样,您将
    distinct
    应用于错误的 顺序
  • 此外,您可以将
    =
    应用于任意两个序列。你没有 将
    distinct
    生成的惰性序列转换为向量
因此,以下内容就足够了

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

您正在对
[1 2 3]
使用
distinct
而不是
'(1 2 3)
问题是要求您编写一个复制序列中每个元素的函数
distinct
以相反的方向工作,删除重复项。