クロージャ 単語

クロージャ

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

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

 概要

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

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

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

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

関連項目

この記事を編集する

掲示板

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

最終更新:2026/08/16(日) 07:00

ほめられた記事

最終更新:2026/08/16(日) 07:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP