closures - function - php 無名関数 戻り値 - クロージャ」と「ラムダ」の違いは何ですか?

入門 コンピュータ科学 itを支える技術と理論の基礎知識 / function / lambda / functional-programming

誰か説明してくれませんか?基本的な概念は理解しているのですが、よく同じように使われているのを見て、混乱しています。

S.L. Barth - Reinstate Monica



Answer #1

ラムダ式は、操作を実行するためにパラメーター、内部変数、または定数に依存するため、ステートレスです。

Function<Integer,Integer> lambda = t -> {
    int n = 2
    return t * n 
}

クロージャは、パラメータと定数とともに外部変数(つまり、関数本体のスコープ外で定義された変数)を使用して操作を実行するため、状態を保持します。

int n = 2

Function<Integer,Integer> closure = t -> {
    return t * n 
}