6
相反拉链映射的两个列表来获得:邮编两个列表中的Clojure到连接的字符串列表
(zipmap ["a","b","c"] ["c","d","e"]) = {"c" "e", "b" "d", "a" "c"}
我想第二个列表的第一个元素以连接第一列表的第一个元素,所以得到:
("ce","bd","ac")
或以相反的顺序。
相反拉链映射的两个列表来获得:邮编两个列表中的Clojure到连接的字符串列表
(zipmap ["a","b","c"] ["c","d","e"]) = {"c" "e", "b" "d", "a" "c"}
我想第二个列表的第一个元素以连接第一列表的第一个元素,所以得到:
("ce","bd","ac")
或以相反的顺序。
你可以用map
来做到这一点。 map
可以采用多个集合,它会从每个集合中获取下一个元素,并将它们传递到作为第一个参数传递的函数中(当其中一个集合用完时停止)。所以你可以传入一个带有n个参数和n个集合的函数。
表达
(map str ["a" "b" "c"] ["c" "d" "e"])
将调用str
第一以 “a” 和 “c”,然后用 “b” 和 “d”,那么以 “C” 和 “e”。其结果将是
("ac" "bd" "ce")
由于str
罐采用可变数目的它可以与任何数量的集合中使用的参数。经过四个集合,像
(map str ["a" "b" "c"] ["d" "e" "f"] ["g" "h" "i"] ["j" "k" "l"])
将评估为
("adgj" "behk" "cfil")
或'(地图STR [ “A” “B” “C”] [ “c” 的 “d” 的 “e”]) ' –
很好的答案。它依赖于知道地图如何处理多个集合,而这些集合并不总是在教程中讨论过。 –
@布莱恩:谢谢你,加了这个回答文字。 –