gpt4 book ai didi

clojure - 创建一个闭包

转载 作者:行者123 更新时间:2023-12-02 13:08:26 25 4
gpt4 key购买 nike

我想创建一个闭包(函数生成器)来计算数字的幂,而不使用特定的 Clojure 库来完成此任务。现在,我可以使用循环 .. recur 来做到这一点。

(defn exp1
[in-num in-exp-multi]
(loop [num in-num exp-multi in-exp-multi]
(if (> exp-multi 1)
(recur (* num in-num) (- exp-multi 1))
num)))

我尝试过使用partial来提高幂,但仍然停留在重复将数字与自身相乘一定次数所需的构造上。因此,我正在寻找一个生成函数并应用它 x 次的示例。

编辑:

该示例只是为了使用循环 .. recur 解决问题。我的愿望是通过闭包来解决这个问题。

最佳答案

我无法从你的问题中确切地看出你要什么,但也许是这个?

(defn powers-of [exponent]
(iterate #(* % exponent) 1))

(defn nth-power-of [exponent]
(partial nth (powers-of exponent)))

((nth-power-of 5) 2) ;; returns 25

根据您的描述,我认为iterate就是您正在寻找的内容;它创建了一个反复应用于种子的函数的惰性序列。

关于clojure - 创建一个闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7569939/

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