我对闭包有点麻烦,我想知道规范的make-adder过程的等效代码在Ruby中是什么.
在计划中它将是:
(define (make-adder n)
(lambda (x) (+ x n))
Run Code Online (Sandbox Code Playgroud)
Dig*_*oss 17
它实际上非常接近......
def make_addr n
lambda { |x| x + n }
end
t = make_addr 100
t.call 1
101
Run Code Online (Sandbox Code Playgroud)
在1.9你可以使用......
def make_addr n
->(x) { x + n }
end
Run Code Online (Sandbox Code Playgroud)