From: Michael Fellinger Date: 2010-04-15T20:54:58+09:00 Subject: Re: 1.9's New Methods On Thu, Apr 15, 2010 at 8:30 PM, Ryan Davis wrote: > > On Apr 15, 2010, at 4:06 AM, Intransition wrote: > >> First a big shout-out to Marc-Andre Lafortune and his backports project. Nice work. >> >> Now I want to ask if others have noticed all the new methods being add >> to 1.9+? I'm quite happy about vast majority of it, but there was at >> least one method I thought pretty peculiar. This Enumerable method: >> >>  def flat_map(&block) >>    return to_enum(:flat_map) unless block_given? >>    map(&block).flatten(1) >>  end unless method_defined? :flat_map >>  Backports.alias_method self, :collect_concat, :flat_map >> >> I am very curious to know how it was decided that a normal map >> followed by a 1-deep flatten is common enough to warrant its own >> method? Two in fact! > > i use Hash[*collection.map {...}.flatten] all the time. > > Hash[[1,2,3].map{|i| [i,i*2]}] # {1=>2, 2=>4, 3=>6} RUBY_DESCRIPTION # "ruby 1.9.1p378 (2010-01-10 revision 26273) [x86_64-linux]" -- Michael Fellinger CTO, The Rubyists, LLC