map - 从两个或更多序列创建映射序列

标签 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 "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 - 从两个或更多序列创建映射序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10967166/

相关文章:

c++ - boost 任何使用

c++ - 我可以在 C++ 的映射结构中使用 vector 作为索引吗?

android - 应用程序显示网格屏幕而不是谷歌地图

clojure - 在 Clojure 中映射符号绑定(bind)宏(在 fn 中)

clojure - 为什么非全局范围内的 ns 别名(let,def)不起作用?

clojure - 如何在 Clojure 中解析异构树

Java - 检查带有附加 '&' 字符的匹配括号

javascript - JS : Array. map 不添加到数组

java - 同义词 HashMap 的正确用法

java - 尝试遍历 HashMap 时收到 ConcurrentModificationException