4 ms·
Yes, a small feature set is important, and adding the functional-style pipe to languages that already have chaining with the dot seems to clutter up the design
by jasperry 1y ago
Yes, a small feature set is important, and adding the functional-style pipe to languages that already have chaining with the dot seems to clutter up the design space. However, dot-chaining has the severe limitation that you can only pass to the first or "this" argument.
Is there any language with a single feature that gives the best of both worlds?
- bnchrch 1y agoFWIW you can pass to other arguments than first in this syntax ``` params |> Map.get("user") |> create_user() |> (¬ify_admin("signup", &1)).() ``` or ``` params |> Map.get("user") |> create_user() |> (fn user -> notify_admin("signup", user) end).() ```
- Terr_ 1y agoBTW, there's a convenience macro of Kernel.then/2 [0] which IMO looks a little cleaner: params |> Map.get("user") |> create_user() |> then(¬ify_admin("signup", &1)) params |> Map.get("user") |> create_user() |> then(fn user -> notify_admin("signup", user) end) [0] https://hexdocs.pm/elixir/1.18.3/Kernel.html#then/2 https://hexdocs.pm/elixir/1.18.3/Kernel.html#then/2
- deleted 1y ago[deleted]
- AndyKluger 1y agoDo concatenative langs like Factor fit the bill?