In clojure ist eine mögliche Darstellung einer Matrix ein Vektor von Vektoren, d.h. [[1 2] [3 4]]
. Eine mögliche Implementierung einer Matrix zur Umsetzung wäre:Matrixtransposition in clojure
(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)))
Kann jemand denken Sie an einen mehr idiomatische zu clojure Implementierung? um zum Beispiel zu vermeiden, dass diese schreckliche Schleife wiederkehrt?
Kennen Sie incanter? Wenn Sie verschiedene Matrix-Operationen benötigen, könnte es eine Quelle der Inspiration sein - https://github.com/liebke/incanter/wiki/matrices – sw1nn