This expression:
pp [1, 2, 3].map { |r| r+1 }
evaluates to:
[2, 3, 4]
=> [2, 3, 4]
As expected. However, this expression:
pp [1, 2, 3].map do |r|
r+1
end
evaluates to:
#<Enumerator: ...>
=> #<Enumerator: [1, 2, 3]:map>
Why does pp see an enumerator in the second case, rather than the mapped array?