将自然数转换为特定基数并将其作为列表返回

2024-03-30

我想将函数的结果显示为列表而不是数字。 我的结果是:

(define lst (list ))
(define (num->base n b)
  (if (zero? n)
     (append lst (list 0))
     (append lst (list (+ (* 10 (num->base (quotient n b) b)) (modulo n b))))))

出现下一个错误:

expected: number?
given: '(0)
argument position: 2nd
other arguments...:
10

我认为你必须重新思考这个问题。将结果附加到全局变量绝对不是可行的方法,让我们通过尾递归尝试不同的方法:

(define (num->base n b)
  (let loop ((n n) (acc '()))
    (if (< n b)
        (cons n acc)
        (loop (quotient n b)
              (cons (modulo n b) acc)))))

它按预期工作:

(num->base 12345 10)
=> '(1 2 3 4 5)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将自然数转换为特定基数并将其作为列表返回 的相关文章

  • 如何在方案中调试gimp的script-fu脚本?

    我尝试使用 script fu scheme 为 gimp 制作一些脚本 当然 作为一个初学者 会有很多错误和误解 现在我正在寻找一种调试这些脚本的方法 我找到了 gimp message 但结果没有显示 我不知道是否有可能将调试消息打印到
  • 在 Racket 源代码中选择学生语言

    我正在尝试为 DrRacket 编写一个源文件 指定其中一种语言如何设计教学语言的程序 see 球拍文档 http docs racket lang org drracket htdp langs html 我知道我可以在 DrRacket
  • 方案作业

    当我每次得到值 10 时评估以下表达式 lambda x lambda set x x 10 x 0 不过 我只是通过用名称抽象上述过程来进行修改 并在每次值增加 10 时调用 foo define foo lambda x lambda
  • 遍历 Racket 中的字母表中的字母

    我想编写一个程序 将字母表中的字母作为符号进行迭代 并用它们做一些事情 我希望它大致相当于以下 C 代码 for char letter a letter lt z letter printf The letter is c n lette
  • 在Scheme中编写一个自动记忆器。有关宏和包装器的帮助

    我在Scheme中编写自动记忆器时遇到了一些问题 我有一个有效的 memoize 函数 它创建一个哈希表并检查该值是否已经计算出来 如果之前已经计算过 则返回值 否则调用该函数 define memoizer fun let a table
  • 将字符串附加到 IronScheme 中的现有文本文件

    我们正在尝试使用 IronScheme 构建一个日志文件 并且我们已经使用racket 为其编写了代码 它在球拍中工作正常 但 IronScheme 会抛出错误 这是我们目前所拥有的 define write to log lambda w
  • Scheme/Racket有枚举操作吗?

    Scheme Racket 是否有相当于 Haskell 中的 a b 表示法的枚举表示法 在 Haskell 中 1 5 计算结果为列表 1 2 3 4 5 for list i in range 1 6 i sequence gt li
  • 方案中的延续传递风格?

    我遇到了这段代码在维基百科上 http en wikipedia org wiki Continuation passing style define pyth x y k x x lambda x2 y y lambda y2 x2 y2
  • 为什么我的 Scheme 函数返回错误“应用程序:不是过程”?

    我想获得 a b c 的第二个值 但我不想使用 cadr 我可以得到正确的答案 car cdr a b c b 但是当我构建该函数时 define test lambda list car cdr list test a b c 我收到以下
  • 如何找到 MIT 方案中出现错误的地方?

    当你在 MIT 方案中遇到错误时 它不会告诉你错误发生在哪里 例如 它只打印如下内容 Unbound variable top left To continue call RESTART with an option number REST
  • 球拍、包含、要求和提供不起作用

    我有一个名为 functions rkt 的文件 其中有一些函数 我正在另一个文件中工作 我们将其命名为 working rkt 我在 working rkt 中尝试了以下操作 一一 来使用 functions rkt 中定义的函数 req
  • 有人能用简单的话解释一下 call/cc 吗?

    我正在研究语言球拍并试图掌握 call cc 的实际用途 有人可以用简单的语言解释一下并举一两个例子吗 谢谢 并非所有实现call cc完全相同 但希望这个答案可以适用于所有常见的变体 包括球拍 没有什么麻烦 这个故事其实是根据c内置于Un
  • 展开方案中的函数

    Goal 实施unfold仅使用两个参数的函数 论据 第一个参数是 f 它接受某种类型 I 的初始值并返回 nil 或两个元素的 cons 对 这两个元素中的第一个是某种类型 A 的列表中的下一个元素 下一个初始值又是某些类型 I 第二个参
  • 将列表传播到父代 sexp 中

    在任何 lisp 中是否有一种形式可以在父 sexp 中 传播 列表 喜欢 spread 1 2 3 gt 1 2 3 有两种方法可以做到这一点 哪个更好取决于您最终想要什么 一般来说 您可以使用 inside 反引号 表格如下 被评估以生
  • 什么是“3D语法”?

    在编写 Racket 宏的上下文中 3D 语法 是什么意思 这句话我听过好几次了 包含一次对宏的引用I正在写作 但那是不久前的事了 我修复了它 现在我不记得我最初做错了什么 另外 是 3D 语法吗always坏的 或者是像eval 如果你认
  • Scheme/Lisp 嵌套循环和递归

    我正在尝试解决方案中的一个问题 该问题要求我使用嵌套循环或嵌套递归 例如我有两个列表 我必须检查它们的笛卡尔积的条件 解决这些类型问题的最佳方法是什么 有关如何简化这些类型的函数的任何指示吗 I ll elaborate a bit sin
  • 方案中的多维向量?

    我之前问过一个关于方案中数组的问题 结果它们被称为向量 但在其他方面基本上与您期望的相同 有没有一种简单的方法可以在 PLT 方案中处理多维 arrays 向量 出于我的目的 我想要一个名为make multid vector或者其他的东西
  • 从when语句内的函数返回

    我想做的就是使用 when 语句返回一个值 我想要以下功能 if x return y 我正在尝试使用 when x y 但是when语句并没有以退出函数并返回y的方式进行计算 它只是愉快地继续下一行 有没有办法做到这一点而不需要制作一个看
  • 球拍博士中的位图[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 drracket 中的框架 gui 上加载位图 请给出必要的代码和参考文献 我承认 我很难在文档中找到正确的位置来指向您 这是
  • 迭代函数可以调用自身吗?

    当观看下面的 MIT 6 001 课程视频时 讲师在 28 00 将此算法标记为迭代 但是 在 30 27 他说这个算法和实际的 递归 算法都是递归的 该函数正在使用基本情况调用自身 那么这次迭代情况如何 private int itera

随机推荐

  • writeToFile 和 writeToURL 有什么区别?

    也许有人可以在这里解释一下或者发送给我正确的文档 我已经阅读了 IOS 文档 但仍然无法得到它 我什么时候使用 writeToURL 方法 也许问题出在我身上 如果除了我之外的其他人都明白这一点 但如果有人可以帮助我 我将非常感激 不同之处
  • 如何从大气噪声中获得随机数?

    我最近讨论了寻找一种生成真正随机数的方法 讨论最终讨论了使用大气噪声 有人这样做过吗 这个过程涉及什么 有人创建了一个返回从噪声中获得的随机数的网络服务吗 整个网站基于使用大气噪声生成的 真正随机 数字 他们有一个 API 如果您愿意 您可
  • 如何在 Python 中进行按位非运算?

    为了测试使用更基本的构建块 在我的例子中使用 Nand Or 和 And 构建 Xor 操作 我需要能够执行 Not 操作 内置的not似乎只用单个位来做到这一点 如果我做 x 0b1100 x not x 我应该得到0b0011但我只是得
  • sql查询获取已删除的记录

    你有一张桌子table1其中包含id列 即int 11 not null auto increment并从 1 开始 假设您有 10 000 条记录 可以看出最后一条记录的id是10000 一旦删除了 3 条记录 表中就有 9 997 条记
  • HttpWebRequest 的 URL 被特殊字符截断

    我需要调用的 Web 服务的 URL 包含一个包含自由格式文本的参数 我不知道为什么它是这样设计的 因为它是使用 POST 发送的 并且包含许多字段作为 POST 的一部分 但是 这给我带来了一个问题 对于井号和 等某些字符 URL 在遇到
  • 如何在ireport中为堆积条形图中的条形设置不同的颜色?

    我需要为堆积条形图中的每个条形设置唯一的颜色 无论我在一个条中看到什么颜色 它都不应该在任何其他条或任何其他堆栈中重复 例如 我的报告中有 5 个栏 每个栏有 3 个不同的堆栈 我想将红色相关颜色应用于第一个条形及其堆栈 第二条应该有蓝色相
  • JTextField - setColumns() 方法对我不起作用

    我的问题是我的 JTextField setColumns int field1 setColumns 5 不起作用 我猜这是布局管理器的问题 不过 我正在从练习册上学习 我所知道的唯一布局是 flowLayout borderLayout
  • JQuery同步动画

    在很多情况下我希望动画能够同步执行 特别是当我想制作一系列连续的动画时 有没有一种简单的方法来制作 jQueryanimate函数调用同步 我想到的唯一方法是在动画完成时将标志设置为 true 并等待该标志 jQuery 无法制作同步动画
  • response.sendRedirect() 和 request.getRequestDispatcher().forward(request,response) 有什么区别[重复]

    这个问题在这里已经有答案了 我使用JAVA时出现页面跳转的问题 如果我使用 response sendRedirect login jsp 然后我得到这个网址 http localhost 8080 login jsp 但如果我使用 req
  • Android:寻找不同的 TimePicker 样式

    大家好 一个简短的问题 我一直在寻找这种风格的 TimePicker 但到目前为止没有结果 如图所示 机器人绘图 http www droiddraw org widgetguide html 我开始怀疑这种风格的存在 P 任何知道如何获得
  • 在 Helm 值属性中传递数组

    我想将数组作为 Helm 中 yaml 值文件 中的属性传递 我尝试过的 Attempt elasticsearch uri 127 0 0 1 9200 127 0 0 2 9200 Error ReadString 期望 或n 但发现
  • 阻止设计者调用 getter(VS 2008,WinForms)

    我有一个简单的用户控件 其中包含一个最初为空的组合框 该 CB 的 setter 向其添加项目 而 getter 返回选定的项目 当将此 UC 添加到 Form 时 设计者会自动调用空 CB 的 getter 稍后会调用用项目填充 CB 的
  • 获取下周一的日期

    如何在 JavaScript 中获取下周一 我在互联网上找不到任何相关内容 我也尝试了很多代码并对此有所了解 但我无法真正做到这一点 这是我的代码 var d new Date var day d getDay d new Date d s
  • 访问 PHP 中的活动会话

    如何获取服务器上所有活动 PHP 会话的列表并从一个用户的实例中访问它们 激励案例是显示网站上所有当前活动用户的列表 其中用户名存储在每个用户的 PHP 会话中 注意 我知道我可以通过数据库 甚至文件系统 创建自己的状态 但我正在寻找一种利
  • Elasticsearch - 合并多个文档中的字段

    假设我有一堆这样的文档 foo 1 2 3 foo 3 4 5 对于针对这些文档运行的查询 我正在寻找一种方法来返回所有值的数组foo 最好是唯一的值 但重复也可以 foo 1 2 3 3 4 5 我研究了聚合 API 但我不知道如何实现这
  • 缩略图点击后消失,FancyBox

    我创建了 FancyBox 画廊 但现在 当我单击缩略图时 它会按计划显示图像库 但在后台我可以看到所有缩略图都一一消失 F5 或页面重新加载后 所有缩略图都会恢复 My code a class fancybox title a a cl
  • Visual Studio 2015 预览版中的 Windows Phone 8.0 应用程序打包

    我通过我的学生 Dreamspark 帐户安装了 Visual Studio 2015 Ultimate Preview 我将其安装在更新的 Windows 8 1 之上 工作站 我有 Windows Phone 8 0 应用程序 需要将其
  • 如何冻结所有可冻结的 WPF 对象?

    我想冻结窗口中的所有可冻结对象 以获得更好的性能 为此 我使用了几个像这样的循环 foreach Brush item in FindLogicalChildren
  • 如何绘制方向箭头

    我有很多方向和角度的线条 我使用它们来绘制它们UIBezierpath 我需要在线的一端画一个箭头 动态地取决于给定点 Edit Edit 2 杰克的回答是我的代码 let y2 line point2Y let path UIBezier
  • 将自然数转换为特定基数并将其作为列表返回

    我想将函数的结果显示为列表而不是数字 我的结果是 define lst list define num gt base n b if zero n append lst list 0 append lst list 10 num gt ba