如何将方案中的列表转换为num?

2023-12-13

就像将 (1 2 3 4) 转换为 1234~


该问题的特点是将列表合并为单个值,强烈建议使用折叠:

(define (fold-left op initial items)
  (define (loop result rest)
    (if (null? rest)
        result
        (loop (op result (car rest))
              (cdr rest))))
  (loop initial items))

(define (list->num list)
  (fold-left (lambda (value digit)
                     (+ (* value 10) digit))
             0
             list))

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

如何将方案中的列表转换为num? 的相关文章

  • 了解Scheme函数

    我们的编程语言练习考试中给出了以下问题 我很难理解它是如何工作的 有人能告诉我代码流程是什么吗 我已经在球拍中运行过它并且知道答案是什么 看起来第一个 lambda 函数将其他两个函数作为参数 但输入在哪里 lambda x 2 and l
  • 有没有办法检查一个列表的所有元素是否都包含在球拍的另一个列表中?

    我想要一个执行类似操作的函数 gt function 1 2 3 4 1 2 3 4 5 t 在这种情况下返回 t 因为第一个列表的所有元素都包含在第二个列表中 有没有一个函数可以做到这一点而不必担心顺序 在这种情况下 您不会将列表进行比较
  • 小阴谋家 - 从哪里开始?

    我刚刚打开 小阴谋家 我觉得我错过了一些东西 第一个问题问 这是一个原子吗 但我没有看到原子是什么的任何定义 我想我可以通过问题的答案推导出什么是原子 但随后它继续问 l 的 car 是什么 l 的 cdr 是什么 我不知道在问什么 这本书
  • 查找 lambda 表达式中的自由变量

    有谁知道如何找出 lambda 表达式中的自由变量 自由变量是不属于 lambda 参数的变量 我当前的方法 这对我毫无帮助 是简单地使用 car 和 cdr 来遍历表达式 我的主要问题是确定一个值是否是一个变量或者它是否是方案原语之一 有
  • 方案 - 列表之和

    我正在尝试实现一个计算 list 的函数 其名称是sum define sum elemList if null elemList car elemList sum cdr elemList 0 上面的实现给出了错误的结果 例如 gt su
  • 方案/球拍:画布操作

    1 正如标题所述 当我调整窗口大小时 我绘制的对象消失 但矩形保持原样 2 原点从左上角开始 但我希望它在左下角 3 除了绘图库之外 我找不到任何缩放功能 所以如果我希望实现这样的功能 一个选项是通过绘制更大的对象并刷新画布来 缩放 def
  • 展开方案中的函数

    Goal 实施unfold仅使用两个参数的函数 论据 第一个参数是 f 它接受某种类型 I 的初始值并返回 nil 或两个元素的 cons 对 这两个元素中的第一个是某种类型 A 的列表中的下一个元素 下一个初始值又是某些类型 I 第二个参
  • 访问Scheme中的调用堆栈深度

    为了演示尾递归的有效性 我想要一种在Scheme中动态访问调用堆栈深度的方法 有没有办法做到这一点 如果没有 有没有办法在其他主要函数语言 OCaml Haskell 等 中做到这一点 Racket 允许您在调用堆栈中存储值 您可以使用它来
  • 学习 LISP 的最佳方法是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用Emacs运行方案?

    我跟着这个tutorial http jeffcjensen net scheme 并成功安装了Emacs STk Quack 问题是我怎样才能像在 Racket 中那样加载我的程序 在 Racket 中 我可以在上方窗口中编辑代码 输入一
  • 可扩展的宏定义

    灵感来自于评论区 https stackoverflow com questions 23879410 is it possible to extend a function lambda macro in scheme 23879575
  • 返回列表的前 n 个

    如何返回第一个n列表的元素 这是我所拥有的 define returns lambda list n cond null list 0 n n 1 car list cons car list returns cdr list n else
  • 将数字转换为英文字母列表

    我有下面的函数 它将数字输入转换为这些数字的部分翻译的单词输出 使用乘积和商 它将数字的单词表示相加 同时将数字分组 例如 number name 87969087 gt 87 million 969 thousand 87 number
  • 向 DrRacket 添加“Simple Scheme”语言

    我想读完这本书 http www eecs berkeley edu bh ss toc2 html http www eecs berkeley edu bh ss toc2 html 但我无法让 简单方案 语言正常工作 该代码将无法运行
  • 方案符号中区分大小写

    据我所知 Scheme 中的符号不 区分大小写 即 eq Hello hello 评估为 t 因为两者都用符号表示 hello 并且scheme具有两个同名符号是同一个对象的属性 然而 这对我来说似乎并非如此 而且事情似乎区分大小写 无论我
  • 计算二项式时“应用程序:不是过程”

    我正在定义一个函数binomial n k 又名帕斯卡三角形 但出现错误 application not a procedure expected a procedure that can be applied to arguments g
  • 如何在 Visual Studio Code 上运行 Scheme?

    我想知道如何在 Visual Studio Code 上运行简单的方案代码 我已经安装了一个名为 Scheme 的扩展 但下一步是什么 我没有找到有关如何运行代码或开发人员联系方式的扩展的任何详细信息 现在在 VSCode 上编译Schem
  • OS X 的最佳方案或 LISP 实现是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在寻找一个 Scheme 甚至 LISP 的版本 我可以用它来恢复一些丢失的 Lisp 开发技能 一些网络功能固然很好 但不是必需的 我研究
  • 删除嵌套重复项的方案

    所以我在方案中编程并创建了一个删除重复项的函数 但它不适用于嵌套 我真的想不出一个好方法来做到这一点 有没有办法修改我当前的代码并简单地使其与嵌套一起工作 清单 这是我的代码 define duplicates L cond null L
  • 连续传递风格的中间值和返回值

    我来自 OOP 非功能性背景 因此我无法完全可视化有关以下方面的几个在线示例连续传递 https en wikipedia org wiki Continuation passing style 另外 像Scheme这样的函数式语言不必指定

随机推荐