2013-11-04 44 views
0

为什么这个功能只是给一个数字加一个1而完全忽略乘法?使用本地的简单功能

(define (ev n) 
     (local [(define (res l) 
       (* 2 n))] 

     (+ 1 n))) 

回答

1

...因为您不在任何地方拨打res。特殊形式对于定义帮助程序很有用,但仅限于 - 定义他们。如果不明确地称呼他们将不会做任何事;还注意到表达式(* 2 n)乘以n乘以二,但您忽略了l参数。我不确定你打算写什么,也许这样?

(define (ev n) 
    (local [(define (res l) 
      (* 2 l))] 

    (res (+ 1 n)))) 

(ev 3) 
=> 8