1. ホーム
  2. language-agnostic

[解決済み] Lambdaとは?

2023-02-14 02:36:27

質問

Lambdaとは何か、どなたか良い説明をお願いします。 私たちはそれらのためのタグを持っており、それらはC#の質問の秘密で、しかし私はまだそれらがそもそも何であるかの良い定義と説明を見つけることができません。

どのように解決するのですか?

クロージャ、ラムダ、無名関数は必ずしも同じものではありません。

無名関数とは、それ自身の名前を持たない(あるいは、少なくとも必要としない)関数のことです。

クロージャとは、宣言時にレキシカルスコープにあった変数にアクセスできる関数のことです。 out スコープから外れた後でも。 匿名関数は必ずしもクロージャである必要はありませんが、ほとんどの言語ではクロージャであり、クロージャでない場合はむしろ有用ではなくなります。

ラムダは...コンピュータサイエンスとしては、それほどよく定義されていません。 多くの言語がこの用語を使わず、クロージャや非関数と呼んだり、独自の用語を作ったりします。 LISPでは、ラムダは単なる無名関数です。 Pythonでは、ラムダは単一の式に限定された無名関数で、それ以上は名前付きの関数が必要です。 ラムダはどちらの言語でもクロージャです。