Trong clojure, một biểu diễn có thể có của ma trận là một vectơ của vec-tơ, tức là [[1 2] [3 4]]
. Một thi thể của transposing một ma trận sẽ là:chuyển vị ma trận trong 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)))
bất cứ ai có thể nghĩ ra một thành ngữ hơn để thực hiện clojure? ví dụ để tránh lặp lại vòng lặp kinh khủng này?
Bạn có biết về incanter? Nếu bạn cần các hoạt động ma trận khác nhau, nó có thể là nguồn cảm hứng - https://github.com/liebke/incanter/wiki/matrices – sw1nn