I like the idea, I think it would benefit the larger community as there
might be valid cases where you want to use an anonymous function (if it is
a really small one). However, the name seems confusing like Miguel pointed.
I would name it `Function.capture` as it is kind of capturing the anonymous
function and setting it up to be piped. Writing out the implementation for
this makes this name more obvious
```
defmodule Function do
def capture(arg, function) do
apply(function, [arg])
end
end
"foo"
|> Function.capture(fn x -> String.upcase(x) end)
|> IO.puts
```
On Friday, August 9, 2019 at 10:28:25 AM UTC-4, José Valim wrote:
>
> Hi everyone,
>
> With the addition of Function.identity/1, I would like to propose another
> function to the Function module: pipe_to/2.
>
> The idea is that instead of:
>
> "foo
> |> String.upcase()
> |> (&Regex.scan(~r/foo/, &1)).()
>
> One can do:
>
> "foo
> |> String.upcase()
> |> Function.pipe_to(&Regex.scan(~r/foo/, &1))
>
> Or if you import it before:
>
> "foo
> |> String.upcase()
> |> pipe_to(&Regex.scan(~r/foo/, &1))
>
> While I wouldn't write the "pipe to anonymous" code, I have seen enough
> code in the wild that uses it that having a more readable (albeit more
> verbose) approach in the language sounds reasonable to me. The
> implementation can be inlined by the compiler to avoid the extra dispatch
> cost.
>
> What are your thoughts? If you "pipe to anonymous functions" in your code
> today, would you prefer to use the new function? Yes/no? Why?
>
> Thank you,
>
> *José Valim*
> www.plataformatec.com.br
> Skype: jv.ptec
> Founder and Director of R&D
>
--
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/dc7a8b4d-758c-469f-9a5e-7f20fe3a4386%40googlegroups.com.