2014-11-03 3 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)]) 

, но я типа в РЕПЛ:

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

Почему у вас есть внутренние кавычки? У вас нет списка списков, у вас есть список цитируемых списков. –

+0

Да, я не должен цитировать внутренний список. –

ответ

6

Вам не нужно указывать подписи.

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

Вы можете использовать mapv, которая похожа на карту, но возвращает вектор вместо ленивого последовательности

(mapv vec a) 
Смежные вопросы