我在Clojure中努力实现这一目标,我在网上找到的例子并没有给我提供合适的解决方案。
给定数据集:
[[foo bar hello]
[hello foo bar]
[bar hello foo]]
但是,此数组可以是任意长度n
我希望能够从函数中返回看起来像这样的东西:
[["foo" "bar" "hello"]
["hello" "foo" "bar"]
["bar" "hello" "foo"]]
我一直在研究使用walk
,但我不完全确定如何应用这些解决方案。
数据必须保持如上所示,不能返回map
并使用它(不是没有重写很多应用程序的地狱)。
答案 0 :(得分:1)
(println v)
;; [[foo bar hello] [hello foo bar] [bar hello foo]]
(println (vec (map (fn [inner] (vec (map #(str "\"" % "\"") inner))) v)))
;; [["foo" "bar" "hello"] ["hello" "foo" "bar"] ["bar" "hello" "foo"]]
编辑:使用mapv
来避免vec
来电:
(println (mapv (fn [inner] (mapv #(str "\"" % "\"") inner)) v))
;; [["foo" "bar" "hello"] ["hello" "foo" "bar"] ["bar" "hello" "foo"]]