Я новичок в Clojure и функциональном программировании в целом. Я не понимаю, как с этим справиться функционально.
У меня есть следующая матрица:
(def matrix [[\a \b \c]
[\d \e \f]
[\g \h \i]])
Я хочу преобразовать его в нечто подобное (повернуть против часовой стрелки):
((\a \d \g)
(\b \e \h)
(\c \f \i ))
Я взломал этот бит, который дает мне элементы в правильном порядке. Если бы я мог собрать данные в строке таким образом, я мог бы затем разделить ее на раздел. Однако я уверен, что доза является неправильным путем:
(doseq [i [0 1 2]]
(doseq [row matrix]
(println (get (vec row) i))))
Я пробовал с вложенными вызовами карты, но продолжаю зацикливаться на этом. Каков правильный способ создания строки в Clojure или справиться с этим еще лучше?