Project

General

Profile

Bug #3525

Enumerable#flat_map does not return a flatted enumerable

Added by rbjl (Jan Lelis) over 9 years ago. Updated over 8 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
ruby -v:
ruby 1.9.2dev (2010-07-02 revision 28524) [i686-linux]
Backport:
[ruby-core:31001]

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

History

#1

Updated by mame (Yusuke Endoh) over 9 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

Also available in: Atom PDF