我正在运行以下代码:
(define (myadd x y)
(+ x y)
(display (+ x y))
)
(define (mymul x y)
(* x y)
(display (* x y))
)
(apply myadd '(3 (apply mymul '(3 4)))
我尝试运行(apply myadd '(3 (apply mymul '(3 4)))
时得到答案12,但出现以下错误:
[错误:+:需要数字,但得到(应用mymul(引号(3 4)))[应用,(匿名),+]
函数返回最后一个表达式的值。因此,您需要以计算结束函数。首先拨打display
通话。
(define (myadd x y)
(display (+ x y))
(+ x y)
)
此外,您稍后无法正确调用这些函数。应该是:
(myadd 3 (mymul 3 4))
如果要使用apply
,则需要使列表包含调用函数的结果。如果您引用整个列表,那只是一个文字,什么也没叫。
(apply myadd (list 3 (apply mymul '(3 4)))