Scheme 使用局部函数的简单函数
为什么这个函数只是给一个数字加一个1,而完全忽略乘法Scheme 使用局部函数的简单函数,scheme,local,racket,Scheme,Local,Racket,为什么这个函数只是给一个数字加一个1,而完全忽略乘法 (define (ev n) (local [(define (res l) ( * 2 n))] (+ 1 n))) …因为您没有在任何地方调用res。一个local特殊表单对于定义助手过程很有用,但仅此而已——定义它们。如果不显式调用,它们将什么也不做;还要注意表达式(*2n)是n乘以2,但是忽略了l参数。我不确定你打算写什么,也许是这样的 (define (ev n)
(define (ev n)
(local [(define (res l)
( * 2 n))]
(+ 1 n)))
…因为您没有在任何地方调用
res
。一个local
特殊表单对于定义助手过程很有用,但仅此而已——定义它们。如果不显式调用,它们将什么也不做;还要注意表达式(*2n)
是n
乘以2,但是忽略了l
参数。我不确定你打算写什么,也许是这样的
(define (ev n)
(local [(define (res l)
(* 2 l))]
(res (+ 1 n))))
(ev 3)
=> 8