ニコニコ大百科モバイル

7/2(月)よりスマホまたはPCでアクセスした場合、各デバイス向けのサイトへ自動で転送致します


クロージャ


ヨミ: クロージャ
掲示板をミル!
3カキコ!

クロージャ(closure: 関数閉包)とは、実行時の文脈で部分特殊化された関数オブジェクトのこと。引数付きで動的生成された関数オブジェクトといっても良いかも知れない。

似た名前にClojureというプログラミング言語があるが、関数型プログラミングを通じてつながりはあるものの、ClojureにとってClosureが最重要な要素というわけでもなく紛らわしい。


 概要


手続き型言語の感覚では、関数というものはメモリ間上でスタティックに居座るコード塊のことをす。

それに対して関数型言語(schemeとか)や、コードブロックそれ自体もオブジェクトとして認識できるタイプオブジェクト指向(SmalltalkやRuby)の場合、例えば引数2つの関数func(A,B)があったとして、「funcの最初の引数に値1729を渡す1引数関数」(func2(C) = func(1729,C))を生成できる。

こういう作られた時点での情報を「閉じこめた」関数をクロージャ(closure)という。

副作用ありの言では、クロージャで閉じこめた情報を自分で書き換えたりできるため、カプセル化の代わりで使ったりもする。


関連項目



最終更新日: 15/09/24 19:29
タグ検索 パソコン版を見る


[0]TOP
ニコニコ動画モバイル
運営元:ドワンゴ