【发布时间】:2018-03-07 13:00:44
【问题描述】:
我正在尝试学习方案(更具体地说是 R5RS),并且我想定义一个过程,该过程将具有 3 个元素的列表作为输入,例如:'(5 + 2), 其中中间参数始终是运算符,第一个和第三个始终是操作数。
例子:
(proc-mid '(1 + 2))
--> 3
(proc-mid '(1 list 2))
--> (1 2)
(proc-mid '(20 * 5))
--> 100
到目前为止我的代码是这样的:
(define (proc-mid exp)
(define proc (cadr exp))
(proc (car exp) cddr exp))
但是,我收到一条错误消息:
application: not a procedure;
expected a procedure that can be applied to arguments
given: +
arguments...:
那么我的问题是,为什么 + 不被评估为一个过程?
【问题讨论】: