我是Clojure和函数式编程的新手。我不知道如何以函数式的方式处理此问题。
我有以下矩阵:
(def matrix [[\a \b \c]
[\d \e \f]
[\g \h \i]])
我想把它转换成这样(逆时针旋转):((\a \d \g)
(\b \e \h)
(\c \f \i ))
我已经处理了这一部分,使元素按正确的顺序排列。如果我能以这种方式收集数据到一个字符串中,那么我就可以使用partition函数进行分割。但是我相当确定doseq不是正确的选择:
(doseq [i [0 1 2]]
(doseq [row matrix]
(println (get (vec row) i))))
我曾尝试使用嵌套的map调用,但一直卡在那里。在Clojure中构建字符串的正确方法是什么,或者有没有更好的处理方式?