为什么我的 Scheme 函数返回错误“应用程序:不是过程”?

2024-03-30

我想获得 '(a b c) 的第二个值,但我不想使用 cadr。 我可以得到正确的答案:

(car (cdr '(a b c)))

'b

但是当我构建该函数时:

(define test (lambda (list) (car (cdr (list)))))

(test '(a b c))

我收到以下错误:

. . application: not a procedure;
 expected a procedure that can be applied to arguments
  given: '(a b c)
  arguments...: [none]

我真的不知道这个错误是什么意思。


您的代码中包含不正确的括号list参数 - 在方案中:(f)意思是“应用f没有参数的函数”,所以在你的代码中:(list)正在尝试调用list参数就好像它是一个函数,但事实并非如此,会引发错误。

另请注意,致电是一个坏主意list参数,已经有一个具有该名称的内置过程;这就是为什么我将其重命名为lst。这应该可以修复它:

(define test
  (lambda (lst)
    (car (cdr lst))))

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

为什么我的 Scheme 函数返回错误“应用程序:不是过程”? 的相关文章

  • 如何在给定位置的情况下获取列表中的某个元素?

    所以我有一个清单 list myList myList push back Object myObject 我不确定 但我确信这将是数组中的 第 0 个元素 我可以使用任何函数来返回 myObject 吗 Object copy myLis
  • Python - 为什么这段代码被视为生成器?

    我有一个名为 mb 的列表 其格式为 Company Name Rep Mth 1 Calls Mth 1 Inv Totals Mth 1 Inv Vol Mth 2 等等 在下面的代码中 我只是添加了一个包含 38 个 0 的新列表 这
  • 在python中将列表转换为字符串

    我对 python 语言相当陌生 我一直在寻找这个问题的答案 我需要一个如下所示的列表 Kevin went to his computer He sat down He fell asleep 转换为如下字符串 Kevin went to
  • “sizeof”对不完整类型列表结构 C 的无效应用

    我正在尝试实现一种处理页面错误的替换算法 因此 我尝试使用 malloc 创建一个循环链表 但出现以下错误 无效的应用程序sizeof to incomplete typepageInMemory 以下是代码 typedef struct
  • 得到“致命错误:索引超出范围”:在 swiftui 的列表项中显示索引

    更新 错误 类型 没有成员 1 如果在list foreach中放置一个if闭包 if self showMarkedOnly name marked 为什么 代码版本4 struct Name Identifiable Hashable
  • 当列表中不存在 X 时,从列表中查找大于 X 的值

    我试图从列表中查找大于特定值 在我的情况下已知 的值 Example Given list 1 2 5 10 15 list is sorted 查找大于的值X 7在这种情况下 期望的结果 返回一个包含值的列表 10 15 我尝试使用jav
  • Scheme 和 Common Lisp 之间的实际区别是什么? (或任何其他两种 Lisp 方言)

    注意 我并不是在问学哪个 哪个更好或者诸如此类的问题 我选择了 SICP 的免费版本 因为我觉得它读起来很好 我听说过有关它的好东西 并且我对编程的这一方面很感兴趣 我知道Scheme 是Lisp 的一种方言 我想知道 Scheme 和Co
  • Python 递归搜索带有嵌套键的字典

    我最近必须使用嵌套的字典 列表组合来解决实际数据系统中的问题 我为此工作了很长一段时间并提出了解决方案 但我非常不满意 我不得不求助于使用globals 和一个命名的临时全局参数 我不喜欢使用全局变量 这只是要求注入漏洞 我觉得必须有一种更
  • python 中的扁平化列表

    我看过很多关于如何在 Python 中展平列表的帖子 但我一直无法理解这是如何运作的 reduce lambda x y x y myList 有人可以解释一下这是如何工作的吗 gt gt gt myList 1 2 3 4 5 6 7 8
  • 具有固定大小的 Java PriorityQueue

    我正在计算算法的大量可能的结果组合 为了对这些组合进行排序 我用双值对它们进行评级并将它们存储在 PriorityQueue 中 目前 该队列中有大约 200k 个项目 这非常占用内存 实际上 我只需要说出列表中所有项目中最好的 1000
  • 将由空格分隔的整数字符串更改为 int 列表[重复]

    这个问题在这里已经有答案了 我该如何做类似的东西 x 1 2 3 45 87 65 6 8 gt gt gt foo x 1 2 3 45 87 65 6 8 我完全陷入困境 如果我按索引执行此操作 那么超过 1 位数字的数字将被分解 请帮
  • 在 Python 中获取数组作为 GET 查询参数

    我知道在 php 中我可以使用 GET key1 key2 检索以数组形式发送的 GET 数据 但这在 Python 中是可能的 因为我只收到一个字符串 但它不被识别为数组 列表 如果重要的话我使用flask werkzeug 参数名称的深
  • 在 R 中垂直绘制表 kable::extra 和 kable 的列表?

    我需要绘制表格列表一个在另一个之下 显示垂直 有任何想法吗 问题从这里开始 https stackoverflow com questions 73867229 plot a list of tables in a single table
  • 迭代两个不同长度的列表

    我有以下两个列表 nums 1 2 3 4 5 6 7 8 ltrs a b c d for x y in nums ltrs print x y 出现以下错误 c Python35 Scripts gt python listtest p
  • 了解 Scala 中的中缀方法调用和缺点运算符(::)

    我对 Scala 编程语言相当陌生 当我遵循以下网站的讲义时 我正在尝试一些萦绕在我脑海中的东西 here http horstmann com sjsu cs152 04 closures1 html 我想我无法真正理解 cons 运算符
  • 列表值意外变化[重复]

    这个问题在这里已经有答案了 为什么是这个列表r即使我只是想更改列表 也会被更改v 即使它们不指向相同的内存位置 r v list r 2 2 1 2 8 3 10 2 1 8 4 2 4 6 4 for c a in enumerate r
  • Python 中两个列表列表的高效比较

    我是 python 的新手 只是在做项目时学习一些东西 这里我有两个列表列表 我需要比较和分离 A gt B 中找到的差异和 b gt A 中找到的差异 最好的比较方法是什么 A 1L test case 1 1L test case 2
  • 方案符号中区分大小写

    据我所知 Scheme 中的符号不 区分大小写 即 eq Hello hello 评估为 t 因为两者都用符号表示 hello 并且scheme具有两个同名符号是同一个对象的属性 然而 这对我来说似乎并非如此 而且事情似乎区分大小写 无论我
  • Python:在列表理解本身中引用列表理解?

    这个想法刚刚出现在我的脑海中 假设您出于某种原因想要通过 Python 中的列表理解来获取列表的唯一元素 i if i in created comprehension else 0 for i in 1 2 1 2 3 1 2 0 0 3
  • 在 HTML 下拉列表中有一个滚动条

    我正在寻找一种在 HTML 的下拉列表中添加滚动条的方法 这样如果下拉列表包含的内容超过例如 5 项 将出现滚动条以查看其余项 这是因为我将被迫列出一些大清单 过去几个小时我一直在谷歌上搜索它 但没有运气 它需要适用于 IE8 FF 和 C

随机推荐