タグ

closureに関するiwwのブックマーク (2)

  • プログラミング言語を作る/オブジェクトとクロージャ

    このごろの言語はオブジェクト指向でなければ 言語として認めてもらえないような気配もあったりするので、 crowbarにもオブジェクトを組み込むことにします。 が、crowbarのオブジェクト指向は、 C++Javaのそれとはちょっとばかり趣が違います。 なにしろクラスがありません。 では具体的にどんな仕様と実装になっているのか、今回はそれを説明します。 GLOBALをかましたソースは こちらから参照可能です。 ダウンロードは、UNIX版がこちら、 Windows版がこちら。 細かい不具合修正を全バージョンに対して行うのは大変ですので、 ver.0.3系列はver.0.3.01に統合しました。 ここから参照してください。 crowbarでは、配列の生成はネイティブ関数new_array()を使いますが、 同様に、オブジェクトはネイティブ関数new_object()を使用します。 o = n

  • クロージャ - Wikipedia

    クロージャ(クロージャー、英語: closure)、関数閉包はプログラミング言語における関数オブジェクトの一種。いくつかの言語ではラムダ式や無名関数にて利用可能な機能・概念である。引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決することを特徴とする。関数とそれを評価する環境のペアであるともいえる。この概念は少なくとも1960年代のSECDマシンまで遡ることができる。まれに、関数ではなくとも、環境に紐付けられたデータ構造のことをクロージャと呼ぶ場合もある。クロージャをサポートする言語によるプログラミングでは、単に関数の中に関数を定義することができるだけでなく、その際に、外側の関数(エンクロージャ)で宣言された変数を暗黙的に内側の関数に取り込んで操作することができる。主な利点としてはグローバル変数の削減やコールバック関数記述の簡素化が挙げられる。 典型的に

    iww
    iww 2010/02/18
    使い道がわからないので勉強
  • 1