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