2016-08-25 15 views
5

zobaczyłem to w przewodniku eliksiru:Co to jest & +/2 w eliksiru?

Enum.reduce([1, 2, 3], 0, &+/2)

Co do cholery jest & +/2? Nie wydaje mi się, żeby to było dla mnie z życiorysu.

+0

Więcej o funkcji przechwytywania: https://elixir-examples.github.io/examples/function-capture – Brandon

Odpowiedz

7

W tym przykładzie przechwytywana jest funkcja modułu +/2. Operator przechwytywania & przekształca funkcję modułu w anonimową. Tutaj przechwytuje kod +/2, który w rzeczywistości jest Kernel.+/2. Czytaj więcej here.

+2

Odpowiedź PatNowak jest absolutnie poprawna, ale pierwsze zdanie może wywołać zamieszanie, jeśli jesteś nowicjuszem w Elixir. Byłoby mniej mylące w ten sposób: "W tym przykładzie przechwytujesz arytmetyczną funkcję dodawania +/2 z modułu jądra" zamiast tylko "W tym przykładzie przechwytujesz funkcję modułu +/2". – Oleg