在这种情况下,这个有效代码从数据角度来看几乎没有意义。
conj 可以按照精确的语义将两个元素的向量连接到一个映射中。 连接向量列表不应工作。
换句话说 (conj {} [[:a 1] [:b 2]]) 是可以接受的,因为我们正在连接两个向量的向量,并得到 {[:a 1] [:b 2]} 作为结果。
然而,(conj {} '([:a 1] [:b 2])) 不可接受,因为它不是一个向量。
而且,将 '([:d 4]) 直接连接到地图上没有意义,而且不应该工作,但在 CLJS 中却可以工作。尤其是由于 conj [[:d 4]] 不工作。
这几乎像是 CLJS 不关心它是一系列的元素还是仅仅是元素。
(conj {} [[:a 1] [:b 2]] '([:c 3] [:d 4]))
=> {[:a 1] [:b 2], :c 3, :d 4}