行列の可能な表現は、ベクトルのベクトル、すなわち[[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の実装により慣用を考えることができますか?例えばこの恐ろしいループが繰り返されるのを避けるために?
あなたがincanterについて知っていますか?さまざまな行列操作が必要な場合は、インスピレーションの源泉になる可能性があります - https://github.com/liebke/incanter/wiki/matrices – sw1nn