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