我正在运行以下代码:
(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,但我得到了以下错误:
错误:+:需要编号,但got (apply mymul (quote (3 4) apply,(anon),+
发布于 2020-04-18 07:54:07
函数返回最后一个表达式的值。因此,您需要使用计算来结束函数。将display调用放在前面。
(define (myadd x y)
(display (+ x y))
(+ x y)
)而且,您以后没有正确地调用这些函数。它应该是:
(myadd 3 (mymul 3 4))如果你想使用apply,你需要让list包含调用函数的结果。如果你引用了整个列表,它只是一个字面量,没有任何东西被调用。
(apply myadd (list 3 (apply mymul '(3 4)))https://stackoverflow.com/questions/61282465
复制相似问题