From: Mike Austin <"mike[nospam]"@...> Date: 2008-12-07T07:58:48+09:00 Subject: Re: Enumerable#select used to return actual values Mark Thomas wrote: > On Dec 4, 11:07 am, Yukihiro Matsumoto wrote: >> Hi, >> >> In message "Re: Enumerable#select used to return actual values" >> on Fri, 5 Dec 2008 00:47:45 +0900, Trans writes: >> >> |> (1..10).collect{ |a| a * a if a > 5 }.compact >> |> >> |> The only time this doesn't work is when you want to preserve nils in >> |> your original array. >> | >> |And that's exactly what I suggested for #compact, to take a block but >> |faster b/c it's one pass. >> >> I don't deny the existence of use case of such method (although I >> cannot think of any realistic one right now), but its name should not >> be #compact, since it does far more than compacting the receiver. >> >> matz. > > #comprehend ? I know someone brought it up already, but why not "collect_if"? It's "collect", with an "if" :) evens_squared = (1..10).collect_if { |n| n * n if n % 2 == 0 } Mike