gpt4 book ai didi

clojure:(应用 fn coll)与(应用 #(应用 fn %&)coll)

转载 作者:行者123 更新时间:2023-12-03 00:21:31 27 4
gpt4 key购买 nike

我正在通过 labrepl 工作,我看到了一些遵循此模式的代码:

;; Pattern
(apply #(apply f %&) coll)

;; Concrete example
user=> (apply #(apply + %&) [1 2 3 4])
10

这似乎相当于这种模式:

;; Pattern
(apply f coll)

;; Concrete example
user=> (apply + [1 2 3 4])
10

这些模式等效吗?如果不是,有什么区别以及什么时候会使用其中一种?

我从 step function 中获取了前一种模式。在 labrepl 的元胞自动机实验室中:

(defn step
"Advance the automation by one step, updating all cells."
[board]
(doall
(map (fn [window]
(apply #(apply map brians-brain-rules %&)
(doall (map torus-window window))))
(torus-window board))))

更新:我添加了每种模式的具体示例,以帮助使问题更清晰。

最佳答案

不,没有区别。没有理由写更长的形式;我只能假设它是通过逐步更改一度有意义的代码而实现的。

关于clojure:(应用 fn coll)与(应用 #(应用 fn %&)coll),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12765035/

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