Как использовать оператор захвата в Elixir для захвата кортежа из списка? - PullRequest
0 голосов
/ 26 апреля 2020

Я не могу понять, как использовать оператор захвата для захвата кортежа. Вот мой код с функцией.

MyList.map([{"person 1",27},{"person 2",20}], fn({name,_}) -> name end)                 
// ["person 1","person 2"]

Может кто-нибудь помочь мне, пожалуйста, как это сделать с помощью оператора захвата. пока я пробовал это, но бесполезно.

MyList.map([{"person 1",27},{"person 2",20}], & &1}) // returns same List with same tuple
MyList.map([{"person 1",27},{"person 2",20}], &{&1,&2} &1) // error

1 Ответ

2 голосов
/ 26 апреля 2020

Такое точное поведение невозможно, невозможно достичь внутреннего состояния захваченных терминов, &1, &2 et c перехватить весь параметр . Используйте Kernel.elem/2:

MyList.map([{"person 1",27},{"person 2",20}], & elem(&1, 0))
...