タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

クロージャに関するsh19910711のブックマーク (3)

  • Ruby の Proc オブジェクトと Method オブジェクトの違い (proc, lambda, ブロック, メソッドについて) - vivid memo

    プログラミング言語 Ruby 作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型購入: 21人 クリック: 356回この商品を含むブログ (129件) を見る Ruby には、手続きを表すオブジェクトのクラスとして Proc クラスと Method クラスの 2 つのクラスがあります。 Proc オブジェクト *1 にはさらに proc と lambda の 2 種類があって、それぞれどう違うかというのがちょっとややこしいと思います。 次の記事などは結構参考になると思いますが、『プログラミング言語 Ruby』 を読んでさらに理解が深まったのでここにまとめておきます。 Rubyblock、Proc、lambda を理解する - このブログは証明できない。 とりあえずまと

    Ruby の Proc オブジェクトと Method オブジェクトの違い (proc, lambda, ブロック, メソッドについて) - vivid memo
  • Ruby のネストしたメソッドと、変数のスコープ

    0. 目次 JavaScript, Haskell, Python でネストした関数を定義する Ruby でネストしたメソッドは定義できるが、変数のスコープに注意 内部スコープから、外部スコープを参照できない トップレベルに定義したメソッドの所属先は Object ネストしたメソッドの所属先は、外側のメソッドと同じクラス 1. JavaScript, Haskell, Python でネストした関数を定義する 2 つの値を足し合わせる関数を定義したい。 a. JavaScript JavaScript で書くなら、 function sum(x, y){ return x + y; }; sum(1, 2); //=> 3 JavaScript では、ネストした関数を定義できる。 JavaScript Reference - MDN の入れ子の関数とクロージャ によると、 関数の内部に関数

    Ruby のネストしたメソッドと、変数のスコープ
  • 10. i クロージャとオブジェクト | Schemeへの道

    関数体の定義とそれを評価するための環境を合わせてクロージャと呼ぶ. クロージャの概念を用いれば,オブジェクト指向プログラミングの基要素であるオブジェクトを作成することができる. オブジェクトとは,簡単に言えば,メンバ変数(フィールド)といわれるデータとそれを操作するためのメンバ関数(メソッド)をまとめた部品のようなものである. 各フィールドのスコープはオブジェクト内に局所化され,それらにアクセスするためには必ずメソッドを用いることになる. つまりオブジェクト内部のデータは予め指定された方法でのみ操作され,プログラムの他の部分から予期せぬ形で影響を受けることがない. こうすることによって,オブジェクトの内部構造がブラックボックス化され,オブジェクトを,ある機能を提供するプログラムの抽象的な部品として,その詳細な実現方法に左右されることなく利用することができるようになる. ここでは環境モデ

  • 1