Bug #3525
closedEnumerable#flat_map does not return a flatted enumerable
Description
=begin
Hi,
the new flat_map method does not return flatted enumerables:
irb(main):072:0> [[1,2],2,3].flat_map{|e|e}
=> [1, 2, 2, 3]
irb(main):071:0> [[1,2],2,3].flat_map.to_a
=> [[1, 2], 2, 3]
=end
Updated by mame (Yusuke Endoh) over 14 years ago
- Status changed from Open to Rejected
=begin
Hi,
2010/7/3 Jan Lelis redmine@ruby-lang.org:
the new flat_map method does not return flatted enumerables:
irb(main):072:0> [[1,2],2,3].flat_map{|e|e}
=> [1, 2, 2, 3]
irb(main):071:0> [[1,2],2,3].flat_map.to_a
=> [[1, 2], 2, 3]
It is indeed confusing a little, but not a bug.
Enumerable#flat_map aggregates values that is returned from block call,
and returns a flattend array of these values.
Enumerator#to_a aggregates arguments that is passed to (implicit) block
and just returns it as an array.
Look and consider the result of [[1,2],2,3].reject.to_a.
--
Yusuke Endoh mame@tsg.ne.jp
=end