Clojure 2024 年度调查中分享你的想法!

欢迎!请访问关于页面以获取更多关于此功能的信息。

0
集合
编辑

这个异常是期望的行为吗?

class clojure.lang.Keyword cannot be cast to class java.util.Map$Entry

在这段代码上:

(def a [["Active" :Transit-RLC "Active"]])

(->> a
     (transduce
       (comp 
             (map drop-last)
             (map reverse))
       conj [])
     (into {}))

将转换器更改为(map (-> [(second %) (first %)])可以解决这个问题。
谢谢

1 个答案

+2

被选中
 
最佳答案

在使用into之前使用transduce有什么意义?这应该可以工作

(->> a
 (into {}
   (comp 
         (map drop-last)
         (map reverse)
         (map vec))))

注意最后的(map vec),参见https://docs.clojure.org/clojure.core/into#example-5858e2eae4b004d3a355e2c8,了解为什么需要它。您还可以将(map reverse)替换为(map (juxt second first)),这会产生向量,因此不需要(map vec)。

...