我最近看到了一些Clojure或Scala(对不起,我不熟悉它们),他们确实在列表或类似的东西上拉链.什么是拉链,它来自哪里?
在clojure中,矩阵的可能表示是向量的向量,即[[1 2] [3 4]].转置矩阵的可能实现方式是:
(defn transpose [matrix]
(loop [matrix matrix, transp [], i 0]
(if (< i (count (nth matrix 0)))
(recur matrix
(conj transp
(vec (reduce concat
(map #(conj [] (nth %1 i))
matrix))))
(inc i))
transp)))
Run Code Online (Sandbox Code Playgroud)
任何人都可以想到更具惯用性的clojure实现吗?例如,以避免这个可怕的循环复发?
我正试图进入Clojure社区.我一直在使用Python工作,我广泛使用的一个功能是zip()方法,用于迭代值对.在Clojure中是否有(聪明和短暂的)实现相同的方法?