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.