タグ

ブックマーク / d.hatena.ne.jp/mooz (4)

  • JavaScript の分割代入まとめ - mooz deceives you

    幻の ECMAScript 4th 幻となった ECMAScript 4th のドラフトを眺めていたところ, p.33 に Destructuring assignment and binding (分割代入, 分割束縛) という項目を発見した. 分割代入に関しては JavaScript 1.7 (Firefox などが用いる SpiderMonkey や Rhino に実装済み) から使用が可能であるため, ご存知の方も多いのではないかと思う. 「そういえば詳しい仕様は見たことがなかったな」と軽い気持ちで読み進めていたところ, そこに述べられていることが Haskell や OCaml など関数型言語におけるパターンマッチと同等であると分かり, 驚いた. 例えば, 分割代入においては次のように deep なパターンが利用可能であると書かれている. let { x: {a, b}, y:

    Griever
    Griever 2010/07/29
    分割代入まとめ
  • コールスタック上にある関数の引数にアクセス - mooz deceives you

    arguments no title を見ていて気づいたこと. function foo(x, y) { bar(); } function bar() { alert(foo.arguments[0] + ", " + foo.arguments[1]); } foo("x", "y"); // => x, y bar(); // TypeError: foo.arguments is null foo("x", "y") とすると, 以下のような流れで bar から foo の引数にアクセスできる様子. foo("x", "y") でコールスタックに foo が積まれる foo 内で bar() が呼ばれ, コールスタックに bar が積まれる bar 内では foo.arguments とすればコールスタック上にある一番近い foo の引数にアクセス可能 一方, 直接 bar() と

    Griever
    Griever 2010/07/09
    変態
  • 直近のコマンドを繰り返すコマンド - mooz deceives you

    リピート KeySnail で vi での . や Emacs の C-x z のように「直近のコマンドを繰り返すコマンド」を実現しようと思うと、次のように若干泥臭いことをする必要がある。 key.setGlobalKey(['C-x', 'z'], function (aEvent, aArg) { var savedLastFunc = key.lastFunc; if (!savedLastFunc) return; hook.hookList["PostCommand"] = [ function (hookarg) { key.lastFunc = savedLastFunc; delete hook.hookList["PostCommand"]; }]; key.lastFunc(aEvent, aArg); }, "ひとつ前のコマンドを繰り返す"); 解説 とりあえず直近に

    Griever
    Griever 2009/10/10
    key.lastFunc(aEvent, aArg);setTimeout(function () {key.lastFunc = savedLastFunc;}, 10); で良いじゃないかって言っちゃダメだろうか。。setTimeout が後なら lastFunc が重くても関係ない気がする。
  • Emacs ユーザにおすすめのアドオン KeySnail - mooz deceives you

    注意 現在の KeySnail にはプラグインシステムというものが導入され、これまで以上に拡張性が高まっています。最新版の KeySnail は以下のページよりダウンロードすることが可能です。 no title プラグインについては次のエントリを参照してください。 KeySnail 1.0 の新機能「プラグインシステム」を使う - mooz deceives you KeySnail とは KeySnail は Firefox のキーバインドを極限までカスタマイズすることが可能なアドオンです。このアドオンが keyconfig などの「ショートカットキーカスタマイズ系」の拡張機能と比較して優れている点は、次の四つ (or 人によっては三つ) となります。 キーボードショートカットに「連続したキーの組み合わせ」を指定することが可能 モードごとのキー割り当てが可能な為、同じショートカットキーに

    Emacs ユーザにおすすめのアドオン KeySnail - mooz deceives you
    Griever
    Griever 2009/09/27
    ちょっと試してみようかな
  • 1