2009-12-01

http://anond.hatelabo.jp/20091201013806

普通にクロージャという場合、レキシカルスコープを持つことを期待されると思うけど、DLLやらsoからエクスポートされる関数普通のCのスコープだからクロージャとは言わないと思うよ。(そもそもDLLもsoも標準C/C++じゃないから、もしこれらがクロージャ的な動きをするとしてもこれを以て「Cのクロージャ」と呼ぶのはおかしいというのは置いといても。)

ダイナミックスコープなemacs Lispのlambdaとか、ダイナミックスコープもどき(っていうのか?なんて表現したらいいか分からん)なPHPのcreate_functionは動的に作りはしてもクロージャとは言わないんじゃないかな。

http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%B8%E3%83%A3

記事への反応 -
  • 今思ったんだけど。 DLL ダイナミックリンクライブラリ とか SO シェアードオブジェクト って C言語の クロージャーで COMがC++でいうとろころのクロージャーなんじゃね? 仕組み...

    • 普通にクロージャという場合、レキシカルスコープを持つことを期待されると思うけど、DLLやらsoからエクスポートされる関数は普通のCのスコープだからクロージャとは言わないと思う...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん