Hiya

Given Elixir has very limited ability to infer information at compile time
how will the compiler know which function to capture? It is not possible to
create a multiple-arity anonymous function on the BEAM.

Cheers,
Louis


On Tue, 2 Jul 2019, 17:52 Rich Morin, <r.d.mo...@gmail.com> wrote:

> I enjoyed reading "[elixir-core:8881] [Proposal] identity function" and the
> ensuing discussion.  It strikes me that some simple extensions to Elixir's
> function capture syntax might:
>
> - clean up the appearance of function captures
> - make existing functions more generally useful
> - reduce the need for special-purpose lambdas
>
> When a captured function is being used as an argument, it may be possible
> to infer its arity.  So, maybe we can leave this out:
>
>   Enum.map(&id)
>   Enum.sort_by(&String.downcase)
>
> Many named functions take multiple arguments, so they can't be used in
> function captures.  Allowing arguments could extend their reach:
>
>   Enum.sort_by(&elem(1))      # sort by the 2nd element
>   Enum.map(&Tuple.append(42)) # append 42 to each tuple
>
> On a loosely related note, Clojure gets a lot of mileage out of some
> higher-order abstractions (eg, seqs).  There may be opportunities for
> Elixir to follow their lead.  For example, some Enum and List functions
> might be applicable to Tuples.  Similarly, String functions such as
> downcase/1 could be extended to accept atoms, etc.
>
> (ducks)
>
> -r
>
> --
> 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 on the web visit
> https://groups.google.com/d/msgid/elixir-lang-core/3A20E4BD-9648-4872-852A-C5FFDD0A31D5%40gmail.com
> .
> 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 elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CABu8xFAw8okEXjoPkEko1kpy2t6FCv%2BSrGsagxNVARHjFHPSfA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to