任务如下:根据函数传递的值,使用 apply 添加列表元素或乘以列表元素。那些。
apply func(x) '(1 2 3 4)
如果 x = 1,则结果为 10,如果 x = 2,则结果为 24
这是我所做的:
定义函数 func
(defun func_(x) (cond ((eql 1 x)(plus))(eql 2 x)(TIMES))
然后我试着打电话申请
(apply func_(1) '(1 2 3 4))
但是编译器抛出一个错误
错误:变量 FUNC_ 未绑定。
快速链接打开:执行 (si::use-fast-links nil) 用于调试
EVAL 发出的错误信号。
回溯:EVAL
在 SYSTEM::GCL-TOP-LEVEL 中断。
我的解释器中没有任何函数
plus(TIMES更准确地说,它TIMES之前已经有不同的定义),但我立即在你身上看到了一件奇怪的事情——你试图以func_LISP 语言的风格调用 not 。尝试更换您的在
我还决定
func_使用 + 和 * 重写你的函数,结果如下: