gpt4 book ai didi

clojure - 在clojure中为var-args传递向量的最惯用的方法是什么?

转载 作者:行者123 更新时间:2023-12-04 07:12:41 25 4
gpt4 key购买 nike

假设我有一个要放入 map 的键值对向量。

(def v [k1 v1 k2 v2])

我做这样的事情:
(apply assoc (cons my-map v))

事实上,我发现自己在做这种模式,
(apply some-function (cons some-value some-seq))

在过去的几天里好几次。这是惯用的,还是有更好的方法将参数从序列中移动到函数中?

最佳答案

apply在函数名和最后一个 seq 参数之间接受额外的参数。

user> (doc apply)
-------------------------
clojure.core/apply
([f args* argseq])
Applies fn f to the argument list formed by prepending args to argseq.

就是这样 args*方法。所以你可以这样做:
user> (apply assoc {} :foo :bar [:baz :quux])
{:baz :quux, :foo :bar}
user> (apply conj [] :foo :bar [:baz :quux])
[:foo :bar :baz :quux]

关于clojure - 在clojure中为var-args传递向量的最惯用的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3160806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com