在2024年Clojure状态调查中分享您的想法!2024 State of Clojure Survey!

欢迎!请参阅关于页面获取更多关于如何工作的信息。

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票数

选择
 
最佳答案

使用transduce在into之前有何重要意义?这应该可以工作

(->> 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)。

...