【问题标题】:Scheme function doesn't work when 'car'ed from a list从列表中“car”时,Scheme 函数不起作用
【发布时间】:2015-06-25 06:16:51
【问题描述】:

所以我试图仅将函数列表的第一个函数应用于参数列表。我注意到这会起作用:

    (apply + '(1 2))

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

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

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

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

我觉得这个问题的答案可能超级简单,我会觉得很愚蠢,但我一直在尝试添加和取出括号,但我仍然不明白......请帮助!提前致谢!

【问题讨论】:

    标签: scheme


    【解决方案1】:

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

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

    (list + -)
    

    【讨论】:

      猜你喜欢
      • 2014-05-03
      • 1970-01-01
      • 2011-01-24
      • 2020-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      • 2011-02-26
      相关资源
      最近更新 更多