当从列表中编辑 'car' 时,方案功能不起作用

标签 scheme

因此,我尝试仅将函数列表的第一个函数应用于参数列表。我注意到这会起作用:

    (apply + '(1 2))

但是如果我尝试像这样应用添加函数,它将不起作用:

    (apply (car '(+ -)) '(1 2))

知道为什么吗? (car '(+ -)) 不返回 + 吗?实际上这就是我在错误消息中得到的:

    application: not a procedure;
    expected a procedure that can be applied to arguments
    given: +
    arguments.:

我觉得这个问题的答案可能非常简单,而且我会觉得自己很愚蠢,但我已经尝试添加和删除括号有一段时间了,但我还是不明白...请帮忙!提前致谢!

最佳答案

'(+ -) 是一个符号列表,实际上与 (list '+ '-) 相同。

你想要的是一个程序列表:

(list + -)

关于当从列表中编辑 'car' 时,方案功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31042589/

相关文章:

recursion - Racket 不会打印图像,除非它返回到 REPL

scheme - Scheme中的pair和list是否不同?

clojure - 为什么有些 lisp 将函数名放在函数定义的参数列表之外?

haskell - 行动上的懒惰? ( haskell )

string - 方案 - 字符串附加错误类型以应用错误

lisp - 在方案中突破递归的标准方法

coding-style - 使用 Scheme 代码求解二次方程?

scheme - 打印函数调用的参数而不评估,不使用 "macro"

scheme - Chicken计划中的生成器

scheme - (define (p) (p)) 做什么?