Map 从两个或多个序列创建映射序列

Map 从两个或多个序列创建映射序列,map,clojure,hashmap,seq,Map,Clojure,Hashmap,Seq,我是Clojure的新手,我想知道是否有一种方法可以从两个或多个序列创建一系列地图 假设你有: (def numbers '(1 2 3)) (def letters '("a" "b" "c")) (def shapes '("circle" "square" "triangle")) 如果您合并了这些,我想得到Ruby中的哈希数组,或者Clojure中的映射序列 ({:number 1, :letter "a", :shape "circle"} {:number 2, :letter

我是Clojure的新手,我想知道是否有一种方法可以从两个或多个序列创建一系列地图

假设你有:

(def numbers '(1 2 3))
(def letters '("a" "b" "c"))
(def shapes '("circle" "square" "triangle")) 
如果您合并了这些,我想得到Ruby中的哈希数组,或者Clojure中的映射序列

({:number 1, :letter "a", :shape "circle"} {:number 2, :letter "b", :shape "square"} {:number 3, :letter "c", :shape "triangle"})

谢谢

我相信有一种更为惯用的方法可以做到这一点,但是:

 (map (fn [n l s] {:number n, :letter l, :shape s})  numbers letters shapes) ;;=> 
 ({:number 1, :letter "a", :shape "circle"} {:number 2, :letter "b", :shape "square"} {:number 3, :letter "c", :shape "triangle"})
(map (fn [n l s] {:number n, :letter l, :shape s}) numbers letters shapes)
甚至

(map #(do {:number %1, :letter %2, :shape %3}) numbers letters shapes)

哈哈,我们在同一时间发布了完全相同的答案!除了+1哈哈,我什么也做不了,我也会+1你的,真是个共同事件!:)哈哈,谢谢你们,我掷了一枚硬币,@michielworkent得到了比掷硬币更惯用的回答:
(rand nth'[dbaupp-michiel-borkent])