从两个或更多seqs创建seq的地图

kre*_*eek 5 clojure hashmap map seq

我是Clojure的新手,我想知道是否有办法从两个或更多序列创建一系列地图.

假设你有:

(def numbers '(1 2 3))
(def letters '("a" "b" "c"))
(def shapes '("circle" "square" "triangle")) 
Run Code Online (Sandbox Code Playgroud)

如果你合并那些我想在Ruby中得到哈希数组,或者在Clojure中得到一系列地图?

({:number 1, :letter "a", :shape "circle"} {:number 2, :letter "b", :shape "square"} {:number 3, :letter "c", :shape "triangle"})
Run Code Online (Sandbox Code Playgroud)

谢谢!

Mic*_*ent 4

 (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"})
Run Code Online (Sandbox Code Playgroud)

  • 哈哈,我也给你+1,太巧了!:) (2认同)
  • 哈哈,谢谢大家,我掷了一枚硬币,@MichielBorkent 得到了答案 (2认同)
  • 比抛硬币更惯用的方式:`(rand-nth '[dbaupp michiel-borkent])`。 (2认同)