2014-11-03 79 views
2

如何在Clojure中將'('(...)'(...)...)轉換爲[[...] [...] ...]?如何在Clojure中將'('(...)'(...)...)轉換爲[[...] [...] ...]?

我有一個嵌套列表

(def a '('(1 2 3 4) '(:a :b :c :d)) 

我想結果是這樣的:

[ [1 2 3 4] [:a :b :c :d] ] 

但是,當我嘗試使用,但innter元素仍然是一個列表,而不是一個向量:

(map vec a) 
;;output is ([quote (1 2 3 4)] [quote (:a :b :c :d)]) 

,但我在REPL鍵入:

(vec '(1 2 3 4)) 
;; output is [1 2 3 4] 
+0

的爲什麼你有內報價?您沒有列表列表,您有列出的列表。 – 2014-11-03 02:08:17

+0

是的,我不應該引用內部列表。 – 2014-11-03 02:26:57

回答

6

您不必引用子列表。

(def a '((1 2 3 4) (:a :b :c :d))) 

您可以使用mapv,這是類似的圖,但返回一個向量,而不是一個懶惰的序列

(mapv vec a) 
相關問題