各言語で関数(ファンクション)を変数に代入するという共通の概念について説明します。
この概念は、「ファーストクラス関数」または「ファーストクラスオブジェクト」として関数が扱われることを意味します。
言語によって、関数式、ラムダ式、ラムダ、デリゲートと呼ばれる概念で実装されています。
これらの例では、関数を変数に代入し、その変数を使って関数を呼び出しています。
この機能は、高階関数(こうかいかんすう:他の関数を引数として受け取ったり、戻り値として関数を返す関数)を実装する際に非常に便利です。
JavaScriptの場合
変数に関数を代入
const myFunction = function(x) { return x * 2; };
実行方法
const result = myFunction(5); console.log(result); // 10 を出力
Pythonの場合
変数に関数を代入
def my_function(x): return x * 2 another_function = my_function
Rubyの場合
変数に関数を代入
def my_function(x) x * 2 end another_function = method(:my_function)
実行方法
result = another_function.call(5) puts result # 10 を出力
Java
変数に関数を代入(Java 8以降の関数型インターフェースを利用)
import java.util.function.Function; public class Main { public static void main(String[] args) { Function<Integer, Integer> myFunction = x -> x * 2; } }
実行方法:
int result = myFunction.apply(5); System.out.println(result); // 10 を出力