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
以相反的方向工作,删除重复项。