web-dev-qa-db-fra.com

Comment passez-vous une fonction comme paramètre dans Elixir?

Comment spécifiez-vous une fonction comme paramètre d'une autre fonction dans Elixir? Par exemple, passez foo à bar pour que la barre puisse ensuite appeler foo. Quelle est la syntaxe à la fois dans la fonction appelante et dans la fonction qui la reçoit?

43
Matt

Utilisez &Module.function/arity Pour le transmettre et .(…) pour l'appeler.

Par exemple:

def my_hof(f)
    f.([1, 2, 3], &(&1 * 2))
end

my_hof(&Enum.map/2)
67
rightfold