gpt4 book ai didi

clojure - "almost a curry"书中的 "Programming Clojure"实现示例

转载 作者:行者123 更新时间:2023-12-05 01:08:38 25 4
gpt4 key购买 nike

在这段代码中,

(defn faux-curry [& args] (apply partial partial args))

这部分应该怎么理解 :
(apply partial partial args)

在我的理解中,'partial' 接受一个函数和一些值,然后返回一个新的函数,其中一些原始函数的变量是固定的。它是否适用于第一个“部分”……第二个“部分”,它对参数做些什么?有什么更好的理解方式吗?

最佳答案

使用示例参数手动评估可能会有所帮助:

(apply partial partial [+ 1 2 3])                     ; 1.
; =>
(partial partial + 1 2 3) ; 2.
; =>
(fn [& args] (apply partial + 1 2 (concat [3] args))) ; 3.

我们在 faux-curry 的主体中替换示例参数在 1.;然后应用 apply 2. 手工输入。然后应用第一个 partial手动输入 3。(请注意,3. 中的 [3] 实际上是编译代码中外部 partial 的“rest args”序列。)

要注意的关键是 partial是一个和其他函数一样的函数,所以特别是它本身可以作为第一个参数传递给 partial .

关于clojure - "almost a curry"书中的 "Programming Clojure"实现示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16928171/

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