函数返回最后一个表达式的值。所以你需要以计算结束函数。将
我正在运行以下代码:
(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(([apply,(anon(,+]
display
调用放在第一位。
(define (myadd x y)
(display (+ x y))
(+ x y)
)
此外,您以后也不能正确调用函数。应该是:
(myadd 3 (mymul 3 4))
如果要使用apply
,则需要使列表包含调用函数的结果。如果你引用整个列表,它只是一个字面意思,什么都不叫。
(apply myadd (list 3 (apply mymul '(3 4)))