2008-06-01から1ヶ月間の記事一覧

Problem45

30分プログラム、その319。Problem45 - Project Euler。 三角数, 五角数, 六角数は以下のように生成される. 三角数Tn=n(n+1)/2 1, 3, 6, 10, 15, ... 五角数Pn=n(3n-1)/2 1, 5, 12, 22, 35, ... 六角数Hn=n(2n-1) 1, 6, 15, 28, 45, ... T285 = P165 = H143 …

Excelいいじゃないか

今日は一日中、仕事でExcelを触ってた。Excelを表計算ソフトとして使ったのは、初めてかもしれない。 関数も豊富だし、コードアシストもなかなか便利。 結構いいじゃないか。

abcdumpで無名関数がダンプされない

クロージャの実装方法を探るために、いろんなABCをダンプしていて気がついたのだけれども、tamarin付属のabcdumpで一部のメソッドがダンプされないことがある。 function f(){ return function(){ // ダンプされない return 42;} } 直感的には関数内部で定義…

Problem44が解けた?

30分プログラム、その318。Problem44 - Project Eulerが解けた、のか? id:banjunのコードをリライトしただけがしないでもない。 方針としては、適当なxとjを選ぶ(x

<iとだけ書くと、文末に</ppp>がつく。iでなくて適当なアルファベットでなら、なんでもいい。idea:1355か。</iとだけ書くと、文末に</ppp>

ジェネレーティブ・プログラミング読み終った

ジェネレーティブプログラミング (IT Architects’Archive CLASSIC MODER)作者: クシシュトフ・チャルネッキ,ウールリシュ・W・アイセンアッカ,津田義史,今関剛,朝比奈勲出版社/メーカー: 翔泳社発売日: 2008/04/23メディア: 大型本購入: 7人 クリック: 399回…

GetOuterScope

クロージャがなかなか実現できないので、0xEDで直接、バイトコードをいじって色々試してる。どうも、AVM2に載ってない謎の命令、getouterscopeが鍵っぽい。

Tamarinデバッグビルド

いままで、「Tamarinデバッグビルドはどうせ、Tamarin本体を開発する人以外には関係ないだろ」と思っていたけれど、意外と便利。 特に、"-Dverbose"と書くとコンスタントプールの中身やスタックの変化とかを出力してくれて、相当便利。 mac 23:25:26 $ avmpl…

Problem44が解けん

Problem44が解けない。id:banjunに色々教えてもらったはずだけれども、どうもよくわからない。 また、明日考えよう。

リファクタリング

http://github.com/mzp/scheme-abc/commit/fc33594ecfb5d4df926e88ffb9b41cf0f9b763d4AST上で(+ 1 2)のような加算と(print "hello")のような関数適用を区別する必要はない、というあたりまえのことに気がついた。なので、コードがちょっとだけ短かくなった。…

Problem44 - Haskellで無理矢理

30分プログラム、その317。Problem44 - Project EulerをHaskellで無理矢理解こうとして失敗した。まあ、無理だとは思ってたけどね。使った方針は、次のようなもの。 適当なPxを決める Px = Pi + Pjとなるiとjを全て求める。ただしi > j Pi - Pjが五角数のも…

スコープの管理

AVM2のスコープ管理についてメモ。相当賢く管理してて、簡単にクロージャを実装できるようになっている。まずは基本。 スコープはスコープスタックという専用のスタックで管理されている スコープ・スタックには任意のオブジェクトを積める。そして、ECMAScr…

総合テストを追加

今まで、新機能を追加するたびに、簡単なプログラムを書いて、ちゃんと実行できるか確かめてきた。 せっかく機能をテストするためのプログラムがたくさんあるんだから、自動で実行して、結果が変化してないか確認するようにした。実行するスクリプトと、それ…

Problem44

30分プログラム番外編、Problem44 - Project Eulerに手も足も出ずに30分たってしまった。 五角数は Pn = n(3n-1)/2で生成される. 最初の10項は 1, 5, 12, 22, 35, 51, 70, 92, 117, 145, ...である. P4 + P7 = 22 + 70 = 92 = P8である. しかし差 70 - 22 = …

ジェネレーティブ・プログラミングを読み始めました

ジェネレーティブプログラミング (IT Architects’Archive CLASSIC MODER)作者: クシシュトフ・チャルネッキ,ウールリシュ・W・アイセンアッカ,津田義史,今関剛,朝比奈勲出版社/メーカー: 翔泳社発売日: 2008/04/23メディア: 大型本購入: 7人 クリック: 399回…

Problem43

30分プログラム、その316。Problem43 - Project Euler。 数1406357289は0から9のPandigital数である (0から9が1度ずつ現れるので). この数は部分語が面白い性質を持っている.d1を1桁目, d2を2桁目の数とし, 以下順にdnを定義する. この記法を用いると次のこ…