2013-11-04 74 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