[英]How to permanently change a vector in a clojure function with a for loop
我正在尝试制作一个函数,该函数将获取包含字母的向量并将其转换为带有字母对的向量
["a" "b" "c"] to ["ab" "bc"]
我发现该函数可以满足我的需要,但似乎并没有改变我作为参数输入的向量,而是为每次迭代创建了一个新向量。
(defn test [param] (for [i (range (count param))] (assoc param i
(clojure.string/join [(get param i) (get param (inc i))]))))
有谁知道如何永久更改向量的元素?
clojure有许多内置的fns可以进行这种操作。 例如:
(->> ["a" "b" "c" "d"]
(partition 2 1) ; generates (("a" "b") ("b" "c") ("c" "d"))
(map clojure.string/join)); joins the pairs
;=> ("ab" "bc" "cd")
如果您确实想要向量,请将map
更改为mapv
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.