创建一个闭包

2024-03-19

我想创建一个闭包(函数生成器)来计算数字的幂,而不使用特定的 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(使用前将#替换为@)

创建一个闭包 的相关文章

随机推荐

  • HttpUrlConnection getOutputStream 有问题

    我制作了一个android应用程序并用于HttpUrlConnection POST 方法 HoloEverywhere 库 但我有问题 为什么会出现我不知道的问题 我认为 getOutputStream 错误 因为如果用于 getOutp
  • Pandas 稀疏数据导出到 csv - 速度解释

    我正在尝试导出由类型列组成的 Pandas 数据框的子集pd SparseDtype float32 np nan 到 csv 我注意到直接写入 csv 与使用sparse to dense 然后写入csv 谁能向我解释一下这是怎么回事 一
  • Perl/regex 删除字符串的前 3 行和后 3 行

    我正在寻找构建一个正则表达式语句以始终删除前 3 个 字符串的行 以及字符串的最后 3 行 中间部分 可以是任意 n 行内容 任何干净的正则表达式方式来实现 这个输出 即总是删除我们的前 3 行和最后 3 行 字符串 并保留中间部分 这可以
  • dos2unix:找到二进制符号,跳过二进制文件

    我当前遇到一个问题 当尝试对文件执行 dos2unix 命令时 我的脚本失败 这就是我在脚本中的内容 dos2unix n data file data tmp file dos2unix Binary symbol found at li
  • 提示用户输入汇编 ci20 seg 错误

    我目前正在 ci20 机器上开发一个小程序 提示用户输入整数值 然后将该值打印到屏幕上 我当前的代码 data prompt asciiz Please enter an integer message asciiz nValue ente
  • 如何使用 ES6 Fat Arrow .filter() 对象数组

    我正在尝试使用 ES6 箭头函数 filter返回成人 杰克和吉尔 看来我不能使用 if 语句 为了在 ES6 中执行此操作 我需要了解什么 var family name Jack age 26 name Jill age 22 name
  • 转发引用是否仍然是右值引用?

    我仍然对支持移动和转发而发明的规则感到困惑 我仍然不确定的一件事是 是转发参考 just 右值引用 和 应用参考折叠规则 如果它是右值引用 那么该函数为什么会这样 template
  • 显示数据库表中的动态范围并计算每个范围内的行数

    我有这样的数据库表 我想显示不同的 5 岁年龄范围以及该范围内的学生数量 如下所示 此处 最低年龄为 10 岁 因此我们首先计算范围 10 15 该范围内有 5 名学生 对于第二个范围 我们需要找到年龄 gt 15 即18 因此 第二个范围
  • 如何将 JSONString 解析为数据集?

    我正在使用 Web 服务创建 C 应用程序 在我的网络服务中我使用JSONString数据 但我无法将此字符串转换为DataSet My JSONString is Table DisplayVoucherNumber A101239Z A
  • 为什么在 Python 包中使用绝对导入而不是相对导入?

    我最近创建了一个 Python 包 在其中仅使用相对导入来访问存储在其他方法中的函数 现在 在 Numpy 中 我看到很多文件大量使用绝对导入 例如这个文件 https github com numpy numpy blob 8f547f2
  • io:ios应用程序开发选项变灰

    我刚刚签署并创建了一个具有钥匙串访问权限的证书 然后在开发人员门户中单击证书 gt 开发人员 gt 当系统提示我您需要什么类型的证书时 正在开发的ios应用程序开发是灰色的 有人知道为什么吗 我需要吊销证书吗 每个用户只能申请一份开发证书
  • 将 Facebook Connect 与 Authlogic 结合使用

    我正在努力使 Authlogic 和 Facebook Connect 使用 Facebook 发挥良好作用 以便您可以通过正常注册方式或使用 Facebook Connect 创建帐户 我已经能够以一种方式使连接正常工作 但注销仅在 Fa
  • 查询输入必须至少包含一个表或查询

    我在 access 中有一个查询 应该在插入之前检查该项目是否已存在于数据库中 INSERT INTO FinalizedPrintedStickers Values 0000846043 481 9 0 48IG 1F Straight
  • 装箱和拆箱,为什么输出不是都是“System.Object”?

    我得到以下代码 object var3 3 Console WriteLine var3 GetType ToString Console WriteLine typeof object ToString 输出是 System Int32
  • 动态加载.js文件时捕获onload事件?

    有没有捕获onload在 IE 中使用 JavaScript 动态添加脚本标签时会发生事件吗 下面的代码适用于 FireFox 和 Chrome 但不适用于 IE
  • 数列识别

    从另一个问题发展而来 识别R中重复数字的序列 https stackoverflow com questions 7509381 identifying sequences of repeated numbers in r 15328802
  • 根据运行时条件在 Azure Pipeline 中执行或不执行模板

    我已经运行了 Azure Pipeline 现在 我想仅当运行时某个条件成立时才执行一系列步骤 Example steps template steps checkout yml some more steps here bash if s
  • 如何使用Nodejs从上传的ppt文件中获取幻灯片数量?

    我们可以从文件的属性中看到文件详细信息 如下图所示 我需要使用 Nodejs 或 Angularjs 以编程方式获得相同的细节 我不认为 Angularjs 可以完成文件操作 是否可以在节点中获取文件的相同信息 我猜 shellsjs 会支
  • ruby 中的三向比较

    确保 ruby 中三个变量全部相等的最简洁方法是什么 例如 dog animal cat animal chicken animal shoe clothing Something like this which doesn t work
  • 创建一个闭包

    我想创建一个闭包 函数生成器 来计算数字的幂 而不使用特定的 Clojure 库来完成此任务 现在 我可以用循环 重复来做到这一点 defn exp1 in num in exp multi loop num in num exp mult