みずりゅの自由帳

主に参加したイベントやソフトウェア技術/開発について記録しています

Elixirで無名関数の直接呼び出す

備忘。

Elixirで、無名関数の直接呼び出しをする場合の記法。

無名関数を利用する場合、従来は何かしらの変数へ束縛したのち利用する。

iex> noname_fn = fn -> "無名関数の呼び出し" end
#Function<45.97283095/0 in :erl_eval.expr/5>

iex> noname_fn.()
"無名関数の呼び出し"

しかし、無名関数自体を「半角丸括弧」で囲むことで、束縛せずに実行が可能となる。

iex> (fn -> "無名関数の直接呼び出し" end).()
"無名関数の直接呼び出し"

iex> (fn a, b -> a + b  end).(4, 5)
9

iex> (&(&1 + &2)).(4, 5)
9

iex> (&+/2).(4, 5)
9