Skip to content

closure

Keiji Matsuzono edited this page Sep 7, 2020 · 5 revisions

クロージャとしてのラムダ関数

C++のラムダ関数は、ラムダ関数を呼び出した関数のローカル変数をキャプチャできる。

しかし、ラムダ関数内で値を利用したいだけならば、ラムダ関数の引数として渡せばよい。キャプチャする変数(自由変数と呼ぶらしい)と引数と使い分ける基準は何か?

ラムダ関数は、別の関数への引数として渡されることがよくある。この場合、

クロージャのメリット

Wikipedia によれば

  • グローバル変数の削減
  • コールバック関数記述の簡素化 となっている。また、関数型言語では
  • 遅延評価
  • カプセル化 のために使われる、と記述されている。

Clone this wiki locally