2014-11-03 57 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) 
相关问题