clojure destructure向量的向量返回每个向量

时间:2012-10-18 02:19:41

标签: vector clojure

我对clojure很新,语法非常粗糙。我正在尝试构造一个向量矢量。

这是我使用的函数的输出: [[:b 2 3] [:b 3 7] [:b 9 8]]

但是,我希望它做的是显示输出,如下所示: [:b 2 3] [:b 3 7] [:b 9 8]

基本上,试图摆脱那些最多的括号。这可能吗?任何帮助表示赞赏:)

1 个答案:

答案 0 :(得分:3)

如果您只想要指定的输出,您当然可以按照这样的方式按摩:

(apply str (interpose " " [[:b 2 3] [:b 3 7] [:b 9 8]]))
;= "[:b 2 3] [:b 3 7] [:b 9 8]"

诀窍。至于解构,如果你有一个返回f的函数[[:b 2 3] [:b 3 7] [:b 9 8]],你可以按如下方式使用解构:

(defn f []  ;; something presumably more complicated goes here
    [[:b 2 3] [:b 3 7] [:b 9 8]])

(let [[a b c] (f)]
    (println a b c))
; prints [:b 2 3] [:b 3 7] [:b 9 8]