Just want to chime in and say that I somehow missed the addition of `Map.map`, 
`Map.filter` and `Map.reject` and I am *thrilled* by those additions :D

Sent via Superhuman ( https://sprh.mn/?vip=zachary.s.dan...@gmail.com )

On Sun, Nov 07, 2021 at 3:19 PM, Tyler Young < s3c...@gmail.com > wrote:

> 
> 
> 
> I’m so excited that 1.13 is bringing Map. filter/ 2 (
> https://hexdocs.pm/elixir/master/Map.html#filter/2 ) and Map. reject/ 2 (
> https://hexdocs.pm/elixir/master/Map.html#reject/2 ). The performance
> improvements over the alternatives are nice, but I think making the
> author’s intent more clear is the biggest win.
> 
> 
> 
> With that said, I’d love to extend this with corresponding functions for
> filtering just based on the keys or values of the map. In practice, you're
> almost always discarding one of the two; you almost never see a map
> filtering on both the key and value at the same time.
> 
> While there's probably no performance benefit to be had, I think the added
> expressivity is worth it. Consider:
> 
> is_odd = fn val -> rem(val, 2) == 1 end
> numbers = %{one: 1, two: 2, three: 3, four: 4}
> 
> Map.filter(numbers, fn {_key, val} -> is_odd(val) end)
> Map.filter_by_value(numbers, &is_odd/1)
> 
> Cutting down on the boilerplate of unwrapping the key-value tuple makes
> this much more readable in my opinion.
> 
> If we wanted these, my suggestions would be:
> 
> 
> * Map.filter_by_key/2
> * Map.filter_by_value/2
> * Map.reject_by_key/2
> * Map.reject_by_value/2
> * Keyword versions of all four of the above
> 
> 
> I realize this isn't a very "general" sort of library feature, and clearly
> it doesn't accomplish anything that wasn't possible before, so it might
> not be the direction the core folks want the language to go. I figured it
> can't hurt to pitch it, though. ☺️
> 
> 
> 
> 
> --
> 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 elixir-lang-core+unsubscribe@ googlegroups. com (
> elixir-lang-core+unsubscr...@googlegroups.com ).
> To view this discussion on the web visit https:/ / groups. google. com/ d/
> msgid/ elixir-lang-core/ 9b6acd9c-d1bd-4286-b733-3405e177ecc8n%40googlegroups.
> com (
> https://groups.google.com/d/msgid/elixir-lang-core/9b6acd9c-d1bd-4286-b733-3405e177ecc8n%40googlegroups.com?utm_medium=email&utm_source=footer
> ).
>

-- 
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 elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/kvpojdo4.e20aceef-c8a9-4ce3-ba48-85e72e0029ea%40we.are.superhuman.com.

Reply via email to