> I think it's better as a library.
Makes sense
> 
> Also, wow, did I butcher the spelling of niche.
Just kind of a niche way of spelling 8)

Have a nice weekend!
Florian

> 
> 
> On Fri, Dec 14, 2018 at 9:31 AM Florian Odronitz <[email protected]> 
> wrote:
> That’s correct, pair_by would be a better name since it forms pairs by the 
> return value of the match function.
> 
> If it’s too niche for Enum, do you think it fits another module or would it 
> better be its own library?
> 
> > On 14. Dec 2018, at 15:15, Allen Madsen <[email protected]> wrote:
> > 
> > I feel like this a bit too nitch for Enum. I'll also say, I was surprised 
> > the implementation sorts the two lists. I think what you've implemented 
> > might better be called something like pair_by. I would have expected zip_by 
> > to allow you to control how the zipped items are combined in the resulting 
> > list.
> > 
> > [
> >   [1, 2],
> >   ~w(one two)
> > ] 
> > |> Enum.zip_by(fn {num, word} -> 
> >   "#{num} is #{word}" 
> > end)
> > #=> ["1 is one", "2 is two"]
> > 
> > This is also what it means in perl: 
> > https://metacpan.org/pod/release/PEVANS/List-UtilsBy-0.09/lib/List/UtilsBy.pm#@vals-=-zip_by-{-ITEMFUNC-}-\@arr0,-\@arr1,-\@arr2,...
> > 
> > However, this could just as easily be handled by:
> > 
> > [
> >   [1, 2],
> >   ~w(one two)
> > ] 
> > |> Enum.zip()
> > |> Enum.map(fn {num, word} -> 
> >   "#{num} is #{word}" 
> > end)
> > #=> ["1 is one", "2 is two"]
> > 
> > Allen Madsen
> > http://www.allenmadsen.com
> > 
> > 
> > On Fri, Dec 14, 2018 at 7:19 AM <[email protected]> wrote:
> > Hi,
> > 
> > after having used this functionality in several different projects I like 
> > to propose it to be included in Elixir:
> > 
> > Enum.zip_by/4 is similar to Enum.zip/2 but takes a function which 
> > determines the identity of elements (most often through some kind of 
> > identifier). That means elements can end up having no matching element in 
> > the other list.
> > 
> > It is very handy when doing merges or updates of any kind. I mostly use it 
> > as a preparation step to make on-by-one decisions of how a merge is handled.
> > 
> > Here is what I put together so far:
> > https://github.com/elixir-lang/elixir/compare/master...odo:zip_by
> > 
> > There are some things that I think could be improved where I like to have 
> > some input:
> > 
> > - The code seems a bit bulky, compared to the other functions in the Enum 
> > module (comments could be removed)
> > - I don't really like the name of the do_zip_by/3 recursive function
> > - Both enumerables have to traversed several times (mapping, sorting, 
> > matching)
> > 
> > Let me know what you think.
> > 
> > Thanks,
> > Florian
> > 
> > -- 
> > You received this message because you are subscribed to the Google Groups 
> > "elixir-lang-core" group.
> > To unsubscribe from this group and stop receiving emails from it, send an 
> > email to [email protected].
> > To view this discussion on the web visit 
> > https://groups.google.com/d/msgid/elixir-lang-core/e4bfde94-a39f-402c-9487-205dfe59acbf%40googlegroups.com.
> > For more options, visit https://groups.google.com/d/optout.
> > 
> > -- 
> > You received this message because you are subscribed to the Google Groups 
> > "elixir-lang-core" group.
> > To unsubscribe from this group and stop receiving emails from it, send an 
> > email to [email protected].
> > To view this discussion on the web visit 
> > https://groups.google.com/d/msgid/elixir-lang-core/CAK-y3Cu7BEExYRcMSEP1GSqUfg5DCKiZjaf6eY5AH6qpOQgOaA%40mail.gmail.com.
> > For more options, visit https://groups.google.com/d/optout.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elixir-lang-core/EEF16DFE-864F-40D4-A57B-DD4A05C052E7%40gmail.com.
> For more options, visit https://groups.google.com/d/optout.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elixir-lang-core/CAK-y3CtuDp3QydTsppHNjatq97sWzn8MjOSdyYg2xErY0cEUxQ%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/C5825BCE-DE9E-4A45-9763-2EFE95DD551F%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to