タグ

クロージャに関するhiro360のブックマーク (5)

  • 関数、オブジェクト、クロージャ - FAX

    (thanks to id:koyachi、del.icio.us/rtk2106) OOPとFPと。関数、オブジェクト、クロージャの使い分けについて考えます。 関数型が良いのか、オブジェクト指向が良いのか、知りたいと思っていました。色々なページを読み、現時点で一応の答えを得ました。 カウンタを例にして、関数、スコープ、オブジェクト、クロージャの順に見て行きます。関数関数は処理です。入力と出力があります。関数型プログラミングでは、関数同士の入力と出力を連結しプログラムが構成されます。 var current = 0; function next(v){ return v + 1 } function previous(v){ return v - 1 } ok( 1 == ( current = next(current) ) ); ok( 2 == ( current = next(cu

  • Smalltalk - lethevert is a programmer

    [id:lethevert:20060117:p1] なんか、ここのコメント欄がすごいですよ。 - ところで、クロージャの起源については、[id:lethevert:20050813:p2]のShiroさんのコメントが参考になりますよ。 - 紹介されているSmalltalk-72のクラス定義の仕方、まるでLispですね。(転載して見せたいですけど、コピーできないです。http://www.bitsavers.org/pdf/xerox/alto/Smalltalk72_Manual.pdfのp.28, p.29です) Lispっぽく書くとこんな感じです。見れば見るほど、クロージャに見える。こういう古い文法を見ると、その生い立ちがよく分かりますね。 (define box (turt size) (isnew (turt set turtle) (size set 50) (turt pla

    Smalltalk - lethevert is a programmer
  • SIMULA - lethevert is a programmer

    Smalltalkのブロックがどこから来たのかな?と思って、SIMULAの文法を調べてみたのですが、いいウェブページを発見。 http://staff.um.edu.mt/jskl1/talk.html while文やfor文もあるし、Smalltalk的なブロックは持ってないみたいです。 あれはLispのlambdaにインスパイヤされたSmalltalkの独創かな?

    SIMULA - lethevert is a programmer
  • クロージャとは コンピュータの人気・最新記事を集めました - はてな

    例 以下のようなコードを考える(文法はJavaScript) function makeCounter () { var count = 0; return f; function f () { return count++; } } var count = 10; var counter = makeCounter(); document.writeln(counter()); document.writeln(counter()); document.writeln(counter()); document.writeln(counter());クロージャである(静的スコープ)とき、出力はこのようになる。 0 1 2 3クロージャでない(動的スコープ)とき、出力はこのようになる。 10 11 12 13

    クロージャとは コンピュータの人気・最新記事を集めました - はてな
  • オブジェクト指向と関数型と私 - lethevert is a programmer

    [id:m-hiyama:20060615]からTBがきて、改めて考えをまとめる。(前の記事は、オブジェクト指向の話じゃなくってキャリアの話だったので)*1 - といっても、正直に言って、私がちゃんと理解していると言えるオブジェクト指向言語は、Javaぐらいしかないので、結局はJavaの話なのですが。 最近、脳内で、JavaとSchemeの差がどんどんなくなっていくのを感じるのです。はっきり言って、『Javaのオブジェクト = Schemeのクロージャ』としか思えないです。 前に、このブログ内で、SmalltalkのオブジェクトとSchemeのクロージャは非常に近い関係だという話がありましたが(see: [id:lethevert:20060117:p1], [id:lethevert:20060118:p2])、そこで言われていたことをJavaで実感するようになってきたということなのでし

    オブジェクト指向と関数型と私 - lethevert is a programmer
  • 1