4

我对clojure很陌生,语法很粗糙。我正在尝试解构向量的向量。

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

但是,我想做的是像这样显示输出: [:b 2 3] [:b 3 7] [:b 9 8]

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

4

1 回答 1

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]
于 2012-10-18T02:51:53.193 回答