タグ

クロージャに関するRewishのブックマーク (7)

  • クロージャ入門物語 - 三等兵

    なんかクロージャを説明している文章をサイで読んでモゾモゾしつつクロージャを成すために激動の時代を生き抜いた熱い物語である! 完!sandai先生の次回作にご期待ください! 分岐 まずは生真面目にやってみる! http://dqn.sakusakutto.jp/2009/01/javascript_5.html わからなかった・・・ とりあえず書くんだ同志よ! がむしゃらにクロージャのコードを書く こっちでもクロージャのコード書く!よっしゃー突貫じゃー!!! function soto() { var num = 0; } 次。 function soto() { var num = 0; function naka() { num+=1; alert(num); // 数値を確認するためのalert } return naka; } var func = soto(); 出来上がり。

    クロージャ入門物語 - 三等兵
    Rewish
    Rewish 2010/04/05
    確かに説明するのが難しいような気がする。
  • Python Hack : 噛めば噛むほどおいしくなるクロージャの話

    最近 JavaScript を書く機会が増えているが、それに従って自分のコーディングスタイルが少しづつだが変化してきているのが分かる。もともと「コードの読みやすさ」や「実行効率」にとことんこだわるタイプだが、(JavaC++になくて)JavaScriptRubyにあるクロージャや無名関数が私のコーディングスタイルにとてもマッチしているからだと思う。 簡単な例を紹介しよう。Pythonで書かれた config.py というモジュール。config.yamlという設定ファイルを読み込んで Dictionary として返す config.get() という関数。普通に実装すると、以下のような感じになる。 import yaml _config = None def get(): global _config if not _config: data = open('config.yaml')

  • 関数、オブジェクト、クロージャ - 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

    Rewish
    Rewish 2009/07/07
    なるほど
  • 最近のjsプログラムの組み方 - nazokingのブログ

    僕はコードスタイルが一定しないのですが、最近はクロージャ!クロージャ! 最近は Firefox拡張/Greasemonkey/userChrome.js 系の javascript しか書いてないんだけど、そのあたりで「オブジェクトの継承」とかしたいと思うことがなく、 prototype とかややこしいだけなので全然使わなくなりました。 昔 function myClass(){ this.init.apply(this,arguments); } myClass.prototype.init=function(name){ this.name=name; } myClass.prototype.hoge=function(){ return "hoge" } myClass.prototype.huga=function(){ return this.name+this.hoge()+"

    最近のjsプログラムの組み方 - nazokingのブログ
  • [JavaScript] 猿でもわかるクロージャ超入門 1 問題 - DQNEO起業日記

    問題です。 問題: 呼び出すたびに、1,2,3,...を返すような関数 f( )を定義せよ。 f(); // 1 f(); // 2 f(); // 3 この問題、解けますでしょうか? 普通の関数では、できないと思います。 しかし「クロージャ」というのを使えば、このようなことができます。 クロージャって何だ? 「クロージャ」という言葉を、プログラムのやサイトで目にすることがありますよね。 私が最初に見たのは続・初めてのPerl 改訂版(アルパカ)でした。 まったく理解できませんでした。 その後、404 Blog not foundやnaoyaさんのブログなどで「クロージャ」という単語を目にしました。 やはり、まったく分かりませんでした。 とどめの一撃はWikipediaの解説記事。 クロージャ (クロージャー、Closure) は、プログラミング言語において引数以外の変数を実行時の環境

    [JavaScript] 猿でもわかるクロージャ超入門 1 問題 - DQNEO起業日記
  • クロージャが理解できない人のための超クロージャ入門。 - 絶品ゆどうふのタレ

    なんだか全然違う事を考えていて、おもむろにクロージャまで考えが到達してハッと喉のつかえが取れたのでメモ。 タイトルは釣りです。嘘ですちゃんと説明してます。自分なりに。 あとからタイトルが×「超クロージャ入門」→○「クロージャ超入門」にしなきゃいけなかったと気付いたのは秘密。 前座 理解したつもりでいながらも、自分の中で整理しきれなかった項目がクロージャでした。 で、ついさっきやっと、難しく考えすぎていたなぁと気づいたので、自分として理解した事をメモがてら説明しておこうと考えました*1。 といっても、目新しい説明は何も書いてないです。小難しい理屈とか、実装を先に見てしまうからわけわからなくなるんだと思ったので、間違っているかも知れないぐらい大雑把な説明*2と、得られる結果だけを先に書くという説明手法で書いたというだけです。 こういうエントリって、もっといい説明の劣化物を生産することになるのは

    クロージャが理解できない人のための超クロージャ入門。 - 絶品ゆどうふのタレ
  • JavaScriptの巧い書き方 - Archiva

    Make a note of it: Web tech, montaineering, and so on. Note: この記事は、3年以上前に書かれています。Webの進化は速い!情報の正確性は自己責任で判断してください。 Webに言語は数あれど、特に玉石混淆の激しいJavascriptの書き方について纏めてみた。間違い指摘大歓迎! 発端はYahoo!の Eric Miraglia による、YUI 式モジュールの作り方をまとめた記事。ざっくりまとめると、以下の手順になる。 YAHOO.myProject.myModule = function () { //"private" variables: var myPrivateVar = "I can be accessed only from within YAHOO.myProject.myModule."; //"private" m

  • 1