最近开始读这本书了,看到第三章《程序块》中3.3.10 Lisp的内部包和块的区别
中提到的这段代码
# (a)col.select{|x| g(x) }.collect{|x| f(x)}# (b)col.select(&:g).collect(&:f)
文中提到b是Ruby 1.9的省略写法。这里有两个问题,首先col.select(&:g).collect(&:f)
对应的写法应该是col.select{|x| x.g}.collect{|x| x.f}
吧,col.select{|x| g(x) }.collect{|x| f(x)}
这句语句应该是不可省略了,之前我对此一直很不满呢,因为感觉出现这类代码其实频率还更高些,比如逐个输出的情况。其次这也不应该是Ruby 1.9的省略写法吧,1.8也有啊。
原文地址:《松本行弘的程序世界》中matz有段Ruby代码貌似写错了?, 感谢原作者分享。 梦想让我与众不同,奋斗让我改变命运!