【发布时间】:2012-05-08 00:08:34
【问题描述】:
在 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)))
谁能想到更惯用的 clojure 实现?例如避免这种可怕的循环再次发生?
【问题讨论】:
-
你知道咒术吗?如果您需要各种矩阵运算,它可能是您的灵感来源 - github.com/liebke/incanter/wiki/matrices