2010-01-01から1年間の記事一覧

エラトステネスの篩

http://haskell.g.hatena.ne.jp/route150/20101224/1293122299を見て気になったので、エラトステネスの篩を書いてみた。n以下の素数の和を表示する。 import Control.Monad import Data.Array.ST import Data.Array.Unboxed import Data.Array.Base(unsafeRe…

m100の165体環境

強剣師の探索をm100についても行なったので結果を書いておく。注意: これは(おそらく)解ではないし、解の良い近似になっている保証もない。

Grapefruit電卓

Grapefruitが気になってしょうがないので、おもちゃの電卓を書いてみた。GrapefruitはFRPライブラリの一つで、定期的なポーリングを必要としないpush型の設計でありながら、push型FRPにありがちな問題をいくつか解消しているのが売りらしい。 ループのある回…

Cプリプロセッサ: マクロの再帰禁止とトークンの展開禁止

cpp

Cプリプロセッサがマクロの再帰的な展開を許さないのは良く知られていると思う。 #define A() [B()] #define B() {A()} A() /* [{A()}] に展開される */ つまり、あるマクロの展開中に、それと同名のトークンが出現した場合、展開を行わない。特定のマクロに…

uimで草を生やす・続き

この変換規則は以下のコードで生成したもの。これをgen.scmなどと名付けて、uim-sh $(pwd)/gen.scm | fold -sのように実行する。このコードの最後のprintの呼び出しを削除すればそのまま.uimとしても使えるが、アプリ起動のたびに走るコードとしては重すぎる…

uimで草を生やそうとした

(追記:2010-09-19)以下の手順は、uim-skkだと辞書の変更を要し、uim-anthyだと正常に動作しないことが分かりました。要するにこのままでは役に立ちません。二年以上前のコードなので細かい注意事項を忘れていました。いずれ修正版の記事をあげるかもしれませ…

困った

uimでのローマ字入力は、MS-IMEと違って、 無駄な子音が消される(例: "sk" -> "k") 子音連続が、即座に「っ」になる(例: "tt" -> "っt") ため、語末に全角の草を生やしたり、くぁwせdrftgyふじこlpを入力するのが面倒だ。この点をMS-IME風の動作に…

sequenceを線形時間でfoldする

cpp

プリプロセッサメタプログラミングの話。Cプリプロセッサ上で値の列を表現するためのデータ構造の一つとしてsequenceというのがある(Boost.Preprocessorの用語)。 他の言語でいうリストや配列に似たもので、以下のような形をとる。 (0)(1)(2)(3) /* 0から3ま…

fib = 1 : 1 : zipWith (+) fib (tail fib) が遅いかどうかは、使い方に依存する

Haskellでフィボナッチ数を計算するコードとして、次のものが有名だ。 fib :: [Integer] fib = 1 : 1 : zipWith (+) fib (tail fib) これのn番目の要素を取得するコードがO(n^2)よりも遅いということを指摘した記事があった。 Haskellの「fib = 1:1:zipWith …

ICFP Programming Contest 2010

出た。今年の課題は、車と燃料を設計/販売して金儲けというもの。といってもリアルな設計ではなく、車は特定の形の連立不等式で、燃料はその解で、それぞれ表現される。車と燃料をセットで提出するのが基本で、さらに他人の設計した車に適合する燃料を作るこ…

途心10マーガレットのミニマックス解・全部

続き。前回は途心10マーガレットのミニマックス解を一つ見つけたが、ほかにどんな解があるかは不明だった。 今回、ミニマックス解をすべて見つけることができた。 以下ネタバレ。

途心10マーガレットのミニマックス解

マーガレットについて。途心3のマーガレットが三すくみであることは知られているが、途心10だと155すくみの構造を持つことが分かった。ゲーム理論の言葉でいうと、途心10マーガレットを零和ゲームと見たときのミニマックス解(と信じるもの)を一つ見つけた。…

η簡約器

モナドなしで一意名生成 - www.kotha.netの裏のアイディアを検証するための例題として、λ式をη簡約するプログラムを書いてみる。構文をパース→処理→PrettyPrint、という流れを最低限要求する問題としてη簡約が手頃だと思った。構文木を表現するデータとして…