Ruby 中的闭包
我在关闭方面遇到了一些麻烦,我想知道是什么 规范的 make-adder 过程的等效代码将在 红宝石。
在方案中它会是这样的:
(define (make-adder n)
(lambda (x) (+ x n))
I'm having a little trouble with closures and I'd like to know what
the equivalent code for the canonical make-adder procedure would be in
Ruby.
In scheme it would be like:
(define (make-adder n)
(lambda (x) (+ x n))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
一个区别是,Scheme 只有一种过程,而 Ruby 有四种。大多数时候,它们的行为与标准 lambda 非常相似,但您应该尝试 深入了解所有细节。
One difference is that while Scheme has only one kind of procedure, Ruby has four. Most of the time, they behave similarly enough to your standard lambda, but you should try to understand all the details in depth.
在 1.9 中还有另一种方法:
Here's another way to do it in 1.9:
这是一个非常好的屏幕截图,解释了 Ruby 中的块和闭包:
http://www.teachmetocode.com/screencasts/8
Here is a pretty nice screen-cast explaining blocks and closures in Ruby:
http://www.teachmetocode.com/screencasts/8
它实际上非常接近...
在 1.9 中你可以使用...
It's actually very close...
In 1.9 you can use...