この関数が数値に 1 を足すだけで、乗算を完全に無視するのはなぜですか?
(define (ev n)
(local [(define (res l)
( * 2 n))]
(+ 1 n)))
…あなたはresどこにも電話していないからです。特別なlocalフォームはヘルパー プロシージャを定義するのに役立ちますが、それだけです -それらを定義します。明示的に呼び出されない場合は何もしません。(* 2 n)また、式が2 倍になっていることにも注意してください。ただし、パラメーターnは無視されています。l何を書こうとしていたのかわからないのですが、おそらくこのようなものでしょうか?
(define (ev n)
(local [(define (res l)
(* 2 l))]
(res (+ 1 n))))
(ev 3)
=> 8