Peanut gallery here. Perhaps I'm just not doing something right, but
personally I prefer to avoid anon functions wherever possible because it
makes finding things in debugging much harder as the line numbers aren't
as clear as with a named function.
-Brandon
On 12/13/24 1:53 PM, Juan Manuel Azambuja wrote:
Hello!
Decided to take at stab at adding then_if, here is a branch in case
anybody is curious to try it out.
https://github.com/elixir-lang/elixir/compare/main...juanazam:elixir:juanazam_add_then_if?expand=1
I decided to follow Zach's approach and use to anonymous functions, I
still have my doubts if using a plain condition would work best, I may
try that later.
Screenshot 2024-12-13 at 5.52.56 PM.png
El martes, 10 de diciembre de 2024 a las 7:21:34 UTC-3,
and...@andrewtimberlake.com escribió:
apply_if/3 ?
On December 6, 2024, Ben Wilson <benwil...@gmail.com> wrote:
Exploring what that looks concretely in this case:
```
map
|> other_stuff
|> then_if(opts[:foo], &Map.put(&1, :key, value))
```
I like it! Conditional map insert helper functions are
definitely something we've written over and over again in our
code bases and while it's easy to do, I think in some cases
this is cleaner looking than a proliferation of
`maybe_put_foo` functions.
- Ben
On Friday, December 6, 2024 at 9:59:40 AM UTC-5 José Valim
wrote:
Hi Juan!
My initial gut feeling is that this approach does not
scale. What if you want to delete a key conditionally?
Should we have delete_if?
It feels a more general approach would be to introduce
`then_if`:
then_if(subject, condition?, function)
Or similar. :)
*
*José Valim*
https://dashbit.co/
*
On Fri, Dec 6, 2024 at 3:27 PM Juan Manuel Azambuja
<ju...@mimiquate.com> wrote:
Hello,
After working with Elixir for some time I have found
myself repeating some patterns when dealing with maps.
One pattern I see repeated constantly in different
apps developed by myself or others is adding values to
a map conditionally or returning the map unchanged.
This comes in different flavors:
or
When this pattern gets used enough in an app, it's
normal to see it abstracted in a MapUtils module that
updates the map conditionally if a condition is met or
returns the map unchanged otherwise.
My proposal is to include Map.put_if/4 which would
abstract the condition check and return the map
unchanged if the condition is not met:
Enhancing the API by doing this will result in less
code and more readable solutions.
Thanks for reading!
--
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-co...@googlegroups.com.
To view this discussion visit
https://groups.google.com/d/msgid/elixir-lang-core/ed7da716-b9f5-4f64-a77d-d32696326b9en%40googlegroups.com
<https://groups.google.com/d/msgid/elixir-lang-core/ed7da716-b9f5-4f64-a77d-d32696326b9en%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-co...@googlegroups.com.
To view this discussion visit
https://groups.google.com/d/msgid/elixir-lang-core/e9e799a2-ad69-4791-bd9a-22bca327652fn%40googlegroups.com
<https://groups.google.com/d/msgid/elixir-lang-core/e9e799a2-ad69-4791-bd9a-22bca327652fn%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 visit
https://groups.google.com/d/msgid/elixir-lang-core/a290865f-d87e-445c-a7e9-59bda8eb29c2n%40googlegroups.com
<https://groups.google.com/d/msgid/elixir-lang-core/a290865f-d87e-445c-a7e9-59bda8eb29c2n%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 visit
https://groups.google.com/d/msgid/elixir-lang-core/4ffa9e8a-fe1b-4f16-8099-592a3464368a%40cold.org.