無名関数 【anonymous function】 匿名関数 / nameless function
概要
無名関数(anonymous function)とは、コンピュータプログラム上で定義される関数のうち、名前を付けずに定義されるもの。その場ですぐに実行したり、変数に代入したり、他の関数に引数として渡したりするのに用いられることが多い。関数型言語などでは「引数のリスト->処理内容」といった形式のラムダ式の記法を用いて定義する言語が多く、その場で即実行したり、変数にバインドしたりできる。手続き型言語などでは、JavaScriptの「function(引数){処理内容}」という形式のように、通常の関数定義における名前の箇所を省略する記法が用いられることが多い。両方の記法が用意されている言語もある。
関数の引数として関数を渡したり、関数の返り値として関数を戻すような場合、関数に名前が付いている必要はないため、無名関数の仕様を用いて簡潔かつ直接的に処理内容を記述することができる。グローバルの名前空間を汚染しないためなど何らかの事情で一度しか実行しない関数を記述する場合も名付けを省略することができる。
当然のことながら宣言した後でプログラム上の別の箇所から名前によって呼び出すことはできないため、複数の箇所で必要になる処理を記述するのには適しておらず、再帰関数の定義なども基本的にはできない。
(2021.5.19更新)