将LazySeqs组合成一个地图集合

时间:2012-12-30 12:34:26

标签: clojure lazy-sequences

我正在尝试将几个LazySeqs组合成一个地图集合。

("a" "b" "c" ...)
("x" "y" "z" ...)

({:key1 "a" :key2 "x"} {:key1 "b" :key2 "y"} ...)

保证LazySeqs具有相同的长度。这样做的功能方法是什么?

1 个答案:

答案 0 :(得分:0)

map将在多个seq上工作,每次接受一个参数:

(def a ["a" "b" "c"])
(def b ["x" "y" "z"])

(map (fn [x y] {:key1 x :key2 y}) a b)  ; a and b could be lazy...
;=> ({:key1 "a", :key2 "x"} {:key1 "b", :key2 "y"} {:key1 "c", :key2 "z"})