为什么这个函数只是在数字中加1而完全忽略乘法?
(define (ev n)
(local [(define (res l)
( * 2 n))]
(+ 1 n)))
答案 0 :(得分:1)
...因为您没有在任何地方致电res
。 local
特殊表单对于定义帮助程序很有用,但只是 - 定义它们。如果没有明确要求他们什么都不做;另请注意,表达式(* 2 n)
乘以n
乘以2,但您忽略了l
参数。我不确定你打算写什么,也许是这样的?
(define (ev n)
(local [(define (res l)
(* 2 l))]
(res (+ 1 n))))
(ev 3)
=> 8