キャプチャ演算子とは? (公式ドキュメント引用)
キャプチャ演算子(&)を使用したEnum
ElixirのEnumモジュール内の多くの関数は、渡されるEnum型のオブジェクトを処理するための引数として無名関数を取ります。 これらの無名関数は、多くの場合、キャプチャ演算子(&)を使用して省略形で記述されることが多いです。
Enum.map([1,2,3], fn number -> number + 3 end)
[4, 5, 6]
を
Enum.map([1,2,3], &(&1 + 3))
[4, 5, 6]
として記述することができる。
考察
アンパサンドで続けられた関数に対してその前(今回のケースでは第一引数のリスト)を渡して機能を処理することができるのだと考えられる。
fnを無駄に書くことを減らせれるので理解することで可読性を向上させれる効果が期待できそうである。
終わりに
&を調べる際に『elixir アンパサンド』で調べると日本語の記事がヒットしなかった。
またelixirの公式に検索ワードで『&』を入れてもヒットしなかったため教材を引っ張ってきてやっと理解した。
こういった手間が無くて済むように当記事を書いた。
『elixir アンパサンド』で調べた際に公式ドキュメントへと行きつく導線となれば幸いです。