クロージャ(closure: 関数閉包)とは、実行時の文脈で部分特殊化された関数オブジェクトのこと。引数付きで動的生成された関数オブジェクトといっても良いかも知れない。
似た名前にClojureというプログラミング言語があるが、関数型プログラミングを通じてつながりはあるものの、ClojureにとってClosureが最重要な要素というわけでもなく紛らわしい。
手続き型言語の感覚では、関数というものはメモリ空間上でスタティックに居座るコード塊のことを指す。
それに対して関数型言語(schemeとか)や、コードのブロックそれ自体もオブジェクトとして認識できるタイプのオブジェクト指向言語(SmalltalkやRuby)の場合、例えば引数2つの関数func(A,B)があったとして、「funcの最初の引数に値1729を渡す1引数関数」(func2(C) = func(1729,C))を生成できる。
こういう作られた時点での情報を「閉じこめた」関数をクロージャ(closure)という。
副作用ありの言語では、クロージャで閉じこめた情報を自分で書き換えたりできるため、カプセル化の代わりで使ったりもする。
掲示板
2 ななしのよっしん
2019/09/14(土) 15:07:23 ID: DACrv+LA0A
>>1 誰うま
というのはさておき、NTTほか通信事業者の設備部門、およびそれらを相手としてビジネスを行う事業者(通信建設会社とか)の場合、「クロージャ」というと例外なく「端子函(含地下クロージャ)」を指すよね。電柱に固定されている通信ケーブルの接続点とか、マンホールやハンドホールの中にある通信ケーブルの接続点に設置されている端子台ボックス。
NTT規格だと、以下のようなものがある。
・銅線架空用の「3号接続端子函シリーズ」
・銅線地下用の「4号スタンダードクロージャ」
・光ファイバ架空用の「光AOクロージャシリーズ」「AOT-S/Mクロージャ」
・光ファイバ地下用の「TNクロージャ」「UOW-S/Pクロージャ」「UOT-Pクロージャ」
3 ななしのよっしん
2019/09/14(土) 15:09:15 ID: DACrv+LA0A
あと、食パン等の袋を留めるプラスチック製の留め具を「バッグ・クロージャ」略して「クロージャ」と言ったりする
4 ななしのよっしん
2021/07/22(木) 20:41:33 ID: S91elCG4do
プログラミング初心者キラー
普通にクラス使うんじゃ駄目なの?何が違うの?。(´·ω·`)
急上昇ワード改
最終更新:2026/08/16(日) 07:00
最終更新:2026/08/16(日) 07:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。