如何从集合集合中删除外部集合?

时间:2016-07-03 16:54:00

标签: clojure

如何将'((1 2 3) (4 5 6))转换为'(1 2 3) '(4 5 6)

具体而言,如果我有以下集合:

(def coll '((1 2 3) (4 5 6))

我希望将'(1 2 3)'(4 5 6)作为参数传递给方法,如何将coll转换为两个列表?

例如,在

(map list ?? coll)

??的实施将导致

'((1 4) (2 5) (3 6))

这是(map list '(1 2 3) '(4 5 6))的结果。

我尝试的是:

(flatten coll)不起作用,因为它会导致一个列表(1 2 3 4 5 6)

~@coll导致

中取消引用拼接
  

尝试调用未绑定的fn:#'clojure.core / unquote-splicing。

使用(map #(quote %) coll)中的引号进行映射会导致类似(p1__10109# p1__10109#)

1 个答案:

答案 0 :(得分:1)

该操作通常称为transpose。在clojure中,你可以这样做:

(apply map list coll) ;((1 4) (2 5) (3 6))