On 13 November 2012 21:25, rosenfeld (Rodrigo Rosenfeld Rosas) <
rr.rosas / gmail.com> wrote:

>
> Issue #7340 has been updated by rosenfeld (Rodrigo Rosenfeld Rosas).
>
>
> The reason I dislike each_with_object and each_with is the "each" on them.
> "each"'s return value isn't meaningful to me. That's why I would prefer
> "map_to", "map_into" or just "into".
>
> "into" here doesn't mean putting values "into" the array or hash. It
> means: "turn/map object into a hash/array/whatever". It is not about
> putting something into the passed object, but about converting the original
> object (say numbers) into the object being passed as the initial value like
> a hash or an array.
>
> It is ok to chain operations as a pattern (like the one used by jQuery) so
> that an_array.each{...}.sort would justify "each" returning the original
> "an_array", but only to be able to chain operations and not because "each"
> implies returning anything meaningful.
>
> In that sense, each_with_object is currently supposed to return some
> meaningful value. That is why I'd prefer to call it "map_to", "map_into" or
> just "into".
>
> numbers.map_into({}){...} should read "map numbers into a hash where ...".
> It would be even shorter if we just abbreviated "map_into" as just "into".
>
> Also, if there is any chance that this wouldn't be an alias to
> each_with_object, I'd prefer the block's arguments order to be inverted to
> be symmetric to "inject".


I believe, given that explanation, that #map_to is a far more appropriate
name than #map_into . . . and suddenly the reservations I had about this
alias start to fade away.

There is a clear semantic distinction between #each_with, where the focus
is on the action performed in the block, and #map_to, where the focus is on
the object returned from the block.  So the question is: is this
alias/method meant to be an analogue for #each, or for #map ?


-- 
  Matthew Kerwin, B.Sc (CompSci) (Hons)
  http://matthew.kerwin.net.au/
  ABN: 59-013-727-651

  "You'll never find a programming language that frees
  you from the burden of clarifying your ideas." - xkcd