给出以下代码:
(define (g x y) (* x y))
(define (f x y z)
(define (h x y)(g (+ x y) x z))h)
请注意,我将3
个参数传递到g
,其中g
仅接受2
。
但是,解释器没有出现错误信息,为什么?
此致
答案 0 :(得分:4)
你实际上并没有在这里打电话,只是回来了。正确格式化您的代码应如下所示:
(define (f x y z)
(define (h x y)
(g (+ x y) x z))
h)
所以当你打电话(f 1 2 3)时,你会回来。如果你打电话
((f 1 2 3) 1 2)
然后解释器就会出错。