Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 将clojure中的两个列表压缩到串联字符串列表中_List_Clojure - Fatal编程技术网

List 将clojure中的两个列表压缩到串联字符串列表中

List 将clojure中的两个列表压缩到串联字符串列表中,list,clojure,List,Clojure,而不是通过zip映射两个列表来获取: (zipmap ["a","b","c"] ["c","d","e"]) = {"c" "e", "b" "d", "a" "c"} 我想将第一个列表的第一个元素与第二个列表的第一个元素连接起来,以此类推,以获得: ("ce","bd","ac") 或者按相反的顺序。您可以使用map来实现这一点map可以获取多个集合,它从每个集合中获取下一个元素,并将它们传递到作为第一个参数传递的函数中(当其中一个集合用完时停止)。因此,您可以传入一个接受n个参数和

而不是通过zip映射两个列表来获取:

(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"])
将首先用“a”和“c”,然后用“b”和“d”,然后用“c”和“e”调用
str
。结果将是

("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”])
回答得好。它依赖于了解map如何处理多个集合,这在教程中似乎并不总是涉及。即使
str
最多使用两个参数,
map str
也比
map#(str%%2)
好。当您可以直接传入现有函数时,应避免声明新函数。@标记:同意,重写以完全删除不必要的匿名函数。