使用本地的简单功能

时间:2013-11-04 01:29:49

标签: scheme local racket

为什么这个函数只是在数字中加1而完全忽略乘法?

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

      (+  1 n)))

1 个答案:

答案 0 :(得分:1)

...因为您没有在任何地方致电reslocal特殊表单对于定义帮助程序很有用,但只是 - 定义它们。如果没有明确要求他们什么都不做;另请注意,表达式(* 2 n)乘以n乘以2,但您忽略了l参数。我不确定你打算写什么,也许是这样的?

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

    (res (+ 1 n))))

(ev 3)
=> 8