低速版 function fib(i) { if(i == 0 || i == 1) return i; return fib(i-1) + fib(i-2); } 高速版 function fib(i) { return (function(i) { if(i == 0) return [0, 1]; return (function(a){ return [a[1], a[1] + a[0]] })(arguments.callee(i-1)); })(i)[0] }
ぶっちゃけ 僕は遅延評価のことたぶんあんまり理解してないと思います。 でも、とりあえずこんなの作ってみた function l(a) { return typeof a == 'function' ? a() : a } // lazy の l こうやって使う function add(i, j) { return l(i) + l(j) } var count = 0; alert(add(1, 1)); // 2 alert(add(1, function(){ return 1 })); // 2 alert(add(1, function(){ return count++ })); // 1 alert(add(1, function(){ return count++ })); // 2 alert(add(1, function(){ return count++ }));
グローバル領域に以下の一行を書く <script> var currentScript = (function (e) { if(e.nodeName.toLowerCase() == 'script') return e; return arguments.callee(e.lastChild) })(document); alert(currentScript); </script>こうすることで、currentScript はこの script 要素を指す。 いちおう説明 DOM は構築されるときに、上から順番に構築される。そして、script タグがあると、 script 要素を構築したあとに、スクリプトを実行する。 つまり、スクリプトが実行されたとき script 要素は今まさに作られたばかりであり、それよりも後ろの要素が存在しない。さらにこの script 要素を含むすべての要
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
関数を非同期化する関数を作ってみた。 Function.prototype.asynchronize = function() { var f = this; return function() { var resultcb = function() {}; var failcb = function(e) { throw e }; if (typeof arguments[arguments.length - 1] == 'function') { resultcb = Array.prototype.pop.apply(arguments); if (typeof arguments[arguments.length - 1] == 'function') { failcb = Array.prototype.pop.apply(arguments); } } try { var re
オンラインでBasicやC++、JavaScriptの開発&実行が出来る「codeide」 2006年11月28日- codeide オンラインでBasicやC++、JavaScriptの開発&実行が出来る「codeide」。 次のようにオンラインでコードを書いて、WEB上でそのまま動かすことが可能です。 作成したプログラムをexeでダウンロードすることも出来ます。ここまで出来るのは正直すごいですね。 ちょっとプログラムを作ってexeでダウンロードしたい、という場合にブラウザだけで出来るのは嬉しいです。 サイトのUIとしてもなかなか工夫がなされており、ウェブサイト開発の際の参考にも出来そうなサイトです。 関連サイト JavaScriptオンラインエディタ
サイト更新情報 2006/12/06 よく使われているページを検索窓から簡単に辿れるようにしました。(検索窓に「prototype」と入力) 2006/11/27 JavaScript入門/応用サイトJavaScriptistオープン! 2006/11/23 試して確認できるJavaScriptオンラインエディタを公開 2006/11/20 JavaScriptリファレンス、逆引きサンプル集を公開 2006/11/19 JavaScriptライブラリ活用ページ公開 2006/11/15 JavaScriptistベース機能の構築完了 過去のサイト更新情報
JavaScriptは,きちんとしたオブジェクト指向言語であって,オブジェクトを利用した高度な開発が可能です。JavaやC++,.NET系のオブジェクト指向言語がオブジェクトの定義にクラスという概念を用いる「クラス・ベース」の考え方を採用しているのに対し,JavaScriptではひな型となるオブジェクトを元に独自の機能を付加するという「プロトタイプ・ベース」の考え方を採用している点が特徴です。 まず最初に,皆さんの誤解を解いておきましょう。それはJavaScriptは,きちんとしたオブジェクト指向言語だということです。オブジェクト指向言語と言えば,JavaやC++などが有名ですし,C#やVisual Basic 2005といった米Microsoftが開発した.NET系の言語もあります。しかしこれらの言語に比べてJavaScriptは,一段低い「Webブラウザで利用する簡易言語」といったイメ
ColorJack: DHTML Color Picker ColorJack Plugin’s main advantages are it’s simplicity. To give you an idea, let’s compare it to a similar (more popular) product named “ColourMod”… the javascript alone is 475% more bloated than ColorJack’s code. 単体で使えるJavaScriptカラーピッカー「DHTML Color Picker」。 prototype.js等の他ライブラリに依存しないので、単体で使えて軽いカラーピッカー用ライブラリとして使えそう。 関連エントリ
Video Blogãã¼ã ãã¼ã¸ å¶ä½It æ±äººãã¼ã Pcã¦ã§ã ãã¶ã¤ã³ãã½ã³ã³ 販売ãã¼ã ãã½ã³ã³ãã½ã³ã³è³æ ¼ Itãã¼ã ãã¼ã¸ 製ä½ãã½ã³ã³ é販 ãã¹ãã£ã³ã° ãµã¼ãã¹Pc ã»ãã¥ãªãã£It ã¹ã¯ã¼ã«ãã¡ã¤ã³ãã¼ã ãã¼ã¸ å¶ä½ ä¼ç¤¾Web ãã¶ã¤ã³
2006年11月23日14:45 カテゴリLightweight Languages javascript - Array#sortがオレquicksortより遅い!? な、なんだってー!? ごっつええブログ - JavaScriptによるソートアルゴリズムの比較実験 『JavaScriptを使って一定以上の数量をもった数値配列をソートする場合は、組み込みメソッドよりもクイックソートを使用したほうが高速である』 自分でも検証してみた。 どうやらMozilla系列のJavaScript実装に関しては嘘ではないらしい。以下で確認してほしい。 Firefox 2に関してはほぼ同等だが、Mac IE 5, Safari 2.0.4, Opera 9.02ではbuiltinの方が速かった。しかしその差は最も大きかったSafariでも3倍程度で、builtinとしてはやはり遅いように見える。 # of
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
図形描画勉強会、Firebugでエレメントをインスペクトする、リファレンス関連 JavaScript 今日、JS入門ではないんだけど、天神で図形描画に関する勉強会をやった。 id:kiwanami(さくらい)、id:agt(あがた)、id:nowokay(きしだ)ほかが参加。 canvasの基本がわかったぞ。 あと、ドローツールにおけるステートパターンの利用も。 Firebugでインスペクト対象のエレメントをマウスで指定する方法を知っちゃった。 [Inspector]タブに切り替えてDOMツリーを表示させて、左上の[Inspect]ボタンを押して、ページでカーソルを動かすとツリーの中の対象箇所がハイライトされるのかぁ。 今まで、ずっとツリーを展開していって、探してた。 Firebug 1.0(補完もつくなんて...)で新規に追加されるのかと勘違い。 あと、JavaScriptのリファレンス
Ajaxライブラリの全体像を把握しよう Ajaxライブラリ(*注1)はすでに数多くのものが出回っていますが、多過ぎて全体像がつかめていないのではないでしょうか。今回は代表的なAjaxライブラリの一部を挙げ、それぞれを比較しながらAjaxライブラリの全体像を把握していきたいと思います。 どうして、Webアプリ開発にAjaxライブラリが必要なのか どのようなプログラミング言語でもライブラリが存在するように、Ajaxにおいてもライブラリが存在します。 初めにAjaxライブラリの必要性について見ていきたいと思いますが、ここではAjax開発ならではのライブラリの必要性を2点取り上げます(ほかの言語のライブラリと共通する必要性はあらためて取り上げません)。 クロスブラウザ対応 Ajaxの利点として、さまざまな環境における一般的なWebブラウザ上で実行できることが挙げられます。しかしWebブラウザの実装
インターネットでもイントラネットでも使えるブラウザベースのRSSリーダーないかしら、と思ってたんですが、ちょっと探したぐらいじゃなかったのでついうっかりGreasemonkeyで作ってみたくなって、作ってしまいました。 こちら↓です。 rss_reader.user.js - 使い方: インストールするとページ左上にFeed Readerと書いてあるタブ(?)が表示されます。 (RSS1.0とかRSS2.0とATOMとかをまとめてFeedと呼ぶらしいので、 Feed Readerとしました) Feed Readerと書いてある部分をクリックする、 もしくは"f"キーを押すと、 Feed Readerの本体画面が(無理矢理気味に)ページ上に表示されます。 Feed(RSS1.0かRSS2.0かATOM)を含むページを読み込むと タブに青緑色なボタンが表示されます。 そのボタンを押すとFeed
しばらく忙しく更新が滞ってました。 また、ぼちぼちと書きます。 最近、Greasemonkeyスクリプトも作り飽きてきたかなー。 と思っていたのですが、久しぶりに目からウロコなスクリプトを発見!! gotinの日記 - GreasemonkeyでRSSリーダー http://d.hatena.ne.jp/gotin/20061017 これはスゴイ!軽くて速いRSSリーダー。 人が思いついてもやらないことを、平然とやる。そこにしびれる、憧れるゥ! つーことで、真似して作ってみましたグリモンアプリ。 普段一番使いそうなのでテキストエディタ。 hoeditor.user.jsその他のGreasemonkeyスクリプト 簡単な使い方 インストールしたら、新しいページを開きます。 日本語入力がOFFになっているのを確認して、"e"キーを押します。 画面が暗くなりエディタ画面が表示されます。↓例 テキ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く