プログラミング言語において、関数を通常の値のように操作できる機能をもつもの。
例えばJavaは第一級関数に対応していないが、JavaScriptは全ての関数が第一級関数である。このため関数リテラルを変数に代入できる。
const sum = function (x, y) { return x + y; } sum(1, 2); // →結果は3
Cは関数ポインターを値のように扱えるため似たような使い方はできる。C++ではoperator()を持つ関数は関数をオブジェクトとして扱うことができ、これをファンクター(functor)と呼ぶことがある。しかし通常C/C++は第一級関数をサポートしているとはみなされない。
関数型言語とスクリプト言語で対応する例が多い。
関数型言語ではLispとその派生(Schemeなど)、Haskell、MLとその派生(OCamlなど)などで使われている。
オブジェクト指向言語ではIo、Scala、Kotlinなどが対応する。
スクリプト言語ではPerl、Tcl/Tk、Lua 、ECMAScript(JavaScript)、PHP、Python、Rubyなど対応するものが多い。
第一級関数に対応する言語では、関数の引数に関数リテラルを渡したり、関数の戻り値として関数リテラルを返すことができる。
このように、引数として関数を受け取ったり、戻り値として関数を返す関数は「高階関数」と呼ばれる。
JavaScriptのほかに、Kotlinなども第一級関数および高階関数に対応している。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます
▼機能別検索
人気検索語
最近の更新語
今日の用語
おまかせ検索
▼別の語で検索
▼索引検索
カテゴリ検索
全グループ一覧
全プラグイン一覧
このサイトについて
趣旨・概要
参加の案内
ダウンロード