On Tue, Nov 29, 2011 at 08:32:01PM +0900, Rodrigo Rosenfeld Rosas wrote:
> 
> Issue #5663 has been updated by Rodrigo Rosenfeld Rosas.
> 
> 
> Hi Alexey,
> 
> Yes, I know about this. What Jos? Valim suggested (well, he actually wondered, since he doesn't believe this could be changed in Ruby due to the large existent code base) was the removal of the block concept. From what I've understood, the block syntax would actually create a proc (or a lambda) that would be passed as a parameter. And I also find this less confusing, with the similar callable approach taken by C, JavaScript, Python and most languages out there I guess.

It already is. For example
def foo(&p)
p.call
end
> ----------------------------------------
> Feature #5663: Combined map/select method
> http://redmine.ruby-lang.org/issues/5663
> 
> Author: Yehuda Katz
> Status: Open
> Priority: Normal
> Assignee: 
> Category: lib
> Target version: 2.0.0
> 
> 
> It is pretty common to want to map over an Enumerable, but only include the elements that match a particular filter. A common idiom is:
> 
> enum.map { |i| i + 1 if i.even? }.compact
> 
> It is of course also possible to do this with two calls:
> 
> enum.select { |i| i.even? }.map { |i| i + 1 }
> 
> Both cases are clumsy and require two iterations through the loop. I'd like to propose a combined method:
> 
> enum.map_select { |i| i + 1 if i.even? }
> 
> The only caveat is that it would be impossible to intentionally return nil here; suggestions welcome. The naming is also a strawman; feel free to propose something better.
> 
> 
> -- 
> http://redmine.ruby-lang.org

-- 

I'm sorry a pentium won't do, you need an SGI to connect with us.