o que há com esta sintaxe de função anônima?
Apenas começando na minha jornada Elixir. Lendo isso em um livro:
"O operador & converte a expressão que segue em uma função."
ok, acho que entendi ...
iex(70)> f = &(&1 * &2)
#Function<12.80484245 in :erl_eval.expr/5>
iex(72)> f.(2,3)
6
ok, e comercial é uma abreviação de função anônima e seus argumentos. Mas então, por que essa próxima ligação não funciona ?!
iex(73)> &(&1 * &2).()
#Function<12.80484245 in :erl_eval.expr/5>
... e eu posso continuar fazendo isso aparentemente para sempre:
iex(76)> &(&1 * &2).().().()
#Function<12.80484245 in :erl_eval.expr/5>
o que está acontecendo aqui?