Tôi mới sử dụng Clojure và lập trình chức năng nói chung. Tôi đang thua lỗ trong cách xử lý điều này theo cách chức năng.Xoay ma trận danh sách danh sách trong Clojure
Tôi có ma trận sau:
(def matrix [[\a \b \c]
[\d \e \f]
[\g \h \i]])
tôi muốn biến nó thành một cái gì đó như thế này (xoay ngược chiều kim đồng):
((\a \d \g)
(\b \e \h)
(\c \f \i))
tôi đã bị hack lên chút này mà mang lại cho tôi những yếu tố theo đúng thứ tự. Nếu tôi có thể thu thập dữ liệu trong một chuỗi theo cách này thì tôi có thể chia nó thành phân vùng. Tuy nhiên tôi khá chắc chắn liều lượng là sai đường dẫn:
(doseq [i [0 1 2]]
(doseq [row matrix]
(println (get (vec row) i))))
Tôi đã theo dõi các cuộc gọi bản đồ lồng nhau nhưng vẫn bị kẹt với điều đó. Cách chính xác để xây dựng một chuỗi trong Clojure hoặc xử lý điều này một cách tốt hơn là gì?
ấn tượng! cảm ơn – JustGage