我想创建一个闭包(函数生成器)来计算数字的幂,而不使用特定的 Clojure 库来完成此任务。现在,我可以用循环..重复来做到这一点。
(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 次的示例。
Edit:
这个例子只是为了使用循环..递归来解决问题。我的愿望是通过关闭来解决这个问题。
我无法从你的问题中确切地看出你要什么,但也许是这个?
(defn powers-of [exponent]
(iterate #(* % exponent) 1))
(defn nth-power-of [exponent]
(partial nth (powers-of exponent)))
((nth-power-of 5) 2) ;; returns 25
I think iterate
根据您的描述,您正在寻找什么;它创建了一个反复应用于种子的函数的惰性序列。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)