This wouldn't be possible: def find_foos(string) do fun = Function.pipe_to(&Regex.scan(~r/foo/, &1)) string |> String.upcase() |> fun end
It's missing the first argument of Function.pipe_to/2. You'd have to do something like: def find_foos(string) do fun = &Function.pipe_to(&1, &Regex.scan(~r/foo/, &1)) string |> String.upcase() |> fun.() end Though, I'm not sure what happens when there's shadowing of anonymous variables. Allen Madsen http://www.allenmadsen.com On Tue, Aug 13, 2019 at 5:34 PM Wiebe-Marten Wijnja <[email protected]> wrote: > On 13-08-2019 11:03, José Valim wrote: > > > [...] if I have experience with other functional programming languages, I > would expect to be able to write this: > > def find_foos(string) do > fun = &Regex.scan(~r/foo/, &1) > string > |> String.upcase() > |> fun > end > > But that won't work, it has to be "fun.()". So I think we need to work > consistently with calls. Allowing something that is not a call will be > confusing. > > This is a good counter-argument. 👍Maybe it is possible to super-charge > the &-macro to even work in those cases, but it might become too > abuse-enabling if we do. > > Playing devil’s advocate a little, however: what would you expect to > happen when someone does the same thing with Function.pipe_to (or > whatever name is decided upon)?: > > > def find_foos(string) do > fun = Function.pipe_to(&Regex.scan(~r/foo/, &1)) > string > |> String.upcase() > |> fun > end > > ~Marten/Qqwy > > > -- > 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/9ec4915c-436a-300f-7501-e5231e356c36%40resilia.nl > <https://groups.google.com/d/msgid/elixir-lang-core/9ec4915c-436a-300f-7501-e5231e356c36%40resilia.nl?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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CAK-y3CsD9WQrsRwqwpvqdB1aPf%2BpN-iXm2dNeGvUJ-PeLMTCdQ%40mail.gmail.com.
