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
Clojure:将字符串的向量附加到字符串,生成向量_Clojure - Fatal编程技术网

Clojure:将字符串的向量附加到字符串,生成向量

Clojure:将字符串的向量附加到字符串,生成向量,clojure,Clojure,clojure的新成员,所以这可能是一个简单的任务 我有一个字符串向量,让我们称它们为名称,并假设它包含: [“杰克”“菲尔”“鲍勃”] 我想将这些字符串附加到另一个名为intro的字符串的末尾,该字符串包含: “我的名字是” 我想把结果放到一个向量中,它就是: [“我叫杰克”“我叫菲尔”“我叫鲍勃”] 我使用map函数尝试了几种组合,但它们似乎都将intro字符串分开。有人能帮我吗?或者不要映射到介绍字符串 (mapv #(str "My name is " %) ["Jake" "Phil"

clojure的新成员,所以这可能是一个简单的任务

我有一个字符串向量,让我们称它们为
名称
,并假设它包含:
[“杰克”“菲尔”“鲍勃”]

我想将这些字符串附加到另一个名为
intro
的字符串的末尾,该字符串包含:
“我的名字是”

我想把结果放到一个向量中,它就是:

[“我叫杰克”“我叫菲尔”“我叫鲍勃”]


我使用
map
函数尝试了几种组合,但它们似乎都将
intro
字符串分开。有人能帮我吗?

或者不要映射到介绍字符串

(mapv #(str "My name is " %) ["Jake" "Phil" "Bob"])
;=> ["My name is Jake" "My name is Phil" "My name is Bob"]

(vec (for [name ["Jake" "Phil" "Bob"]] (str "My name is " name)))
;=> ["My name is Jake" "My name is Phil" "My name is Bob"]
(mapv str (repeat "My name is ") ["Jake" "Phil" "Bob"])
;=> ["My name is Jake" "My name is Phil" "My name is Bob"]
或者,重复介绍字符串

(mapv #(str "My name is " %) ["Jake" "Phil" "Bob"])
;=> ["My name is Jake" "My name is Phil" "My name is Bob"]

(vec (for [name ["Jake" "Phil" "Bob"]] (str "My name is " name)))
;=> ["My name is Jake" "My name is Phil" "My name is Bob"]
(mapv str (repeat "My name is ") ["Jake" "Phil" "Bob"])
;=> ["My name is Jake" "My name is Phil" "My name is Bob"]

令人惊叹的。我不知道mapv。有三种很容易理解的方法可以做到同样的想法。对哪一个最有效有什么见解?我想这是第一个。@JakeSchwartz你可以在Criterium的帮助下开发一个基准测试,但是是的,它应该是第一个只有闭包和mapv的基准测试。通常,你不应该在意。