最近开始读这本书了,看到第三章《程序块》中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 也有啊。