無名関数 【anonymous function】 匿名関数 / nameless function

概要

無名関数(anonymous function)とは、コンピュータプログラム上で定義される関数のうち、名前を付けずに定義されるもの。その場ですぐに実行したり、変数に代入したり、他の関数に引数として渡したりするのに用いられることが多い。

関数型言語などでは「引数のリスト->処理内容」といった形式のラムダ式の記法を用いて定義する言語が多く、その場で即実行したり、変数にバインドしたりできる。手続き型言語などでは、JavaScriptの「function(引数){処理内容}」という形式のように、通常の関数定義における名前の箇所を省略する記法が用いられることが多い。両方の記法が用意されている言語もある。

関数の引数として関数を渡したり、関数の返り値として関数を戻すような場合、関数に名前が付いている必要はないため、無名関数の仕様を用いて簡潔かつ直接的に処理内容を記述することができる。グローバルの名前空間を汚染しないためなど何らかの事情で一度しか実行しない関数を記述する場合も名付けを省略することができる。

当然のことながら宣言した後でプログラム上の別の箇所から名前によって呼び出すことはできないため、複数の箇所で必要になる処理を記述するのには適しておらず、再帰関数の定義なども基本的にはできない。

(2021.5.19更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。