I'm unclear what you want the proposed function to return when the key isn't present. The map, untouched? I think that behaviour would be a surprise to some. I like the explicitness of `Map.get_and_update/3`.
`Map.get_and_update(map, key, fn nil -> map n -> n + 1 end)` -- - Martin tis 3 okt. 2017 kl 20:40 skrev Ary Borenszweig <[email protected]>: > I saw it, but it's different from what I want. There are two versions: > - get_and_update(map, key, fun): fun is called with the current value > under key in map (*or nil if key is not present in map*) -> I don't want > that nil, it will break my code > - get_and_update!(map, key, fun): raises if there's no key > > I want something like this: > > ~~~ > Map.put_lazy(map, key, fun value -> value + 1 end) > ~~~ > > Here, the function is only invoked if key is present in map. > `get_and_update` would invoke that function with `nil`. > > > > On Tuesday, October 3, 2017 at 3:00:43 PM UTC-3, Tallak Tveide wrote: >> >> https://hexdocs.pm/elixir/Map.html#get_and_update!/3 > > -- > 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/1164ddd8-de7d-4e0d-b140-63db6b6b6646%40googlegroups.com > <https://groups.google.com/d/msgid/elixir-lang-core/1164ddd8-de7d-4e0d-b140-63db6b6b6646%40googlegroups.com?utm_medium=email&utm_source=footer> > . > 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/CAAHw6C%2BLeJdT2d%3DgRUaQNMehrKhuY8ARb1Q-Opxoti3UxpMw4g%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
