2011-12-01から1ヶ月間の記事一覧

記号の幅をいいかんじに揃える

LaTeX で BNF 的なものを書くときに,::= や | の記号をいいかんじに揃えたい.縦に並べるだけなら eqnarray 環境でやればいいかんじに揃う. \begin{eqnarray*} t &::=& x \\ &|& t + t \\ &|& t - t \\ &|& t \times t \\ &|& t \div t \\ \end{eqnarray*}…

ハッシュの衝突

http://events.ccc.de/congress/2011/Fahrplan/events/4680.en.html おもしろい. ウェブアプリケーションフレームワークのほとんどはパラメータを勝手に解析してハッシュテーブルに突っ込んでいるけど,ハッシュが衝突するようなキーを意図的に大量に送りつ…

unite-haddock 書いた

http://d.hatena.ne.jp/kitokitoki/20111217/p1 の「ghc-browse-document の anything 化」が便利っぽかったので同じようなものを書いた. https://github.com/eagletmt/unite-haddock ghc-mod が必要.cabal install ghc-mod でインストールできる.Vim 内…

grundy number

grundy number について知ったのでメモ.これは ある完全情報ゲームについて,両プレイヤーが勝つために最善の状態遷移を選択したとき,与えられた初期状態から先手が勝つか後手が勝つかを答えよ. というような問題を解くときに使えるかもしれない考え方.…

ランタイムに失敗しないインデックス演算子

前回の発展のようなかんじで,GADT を用いて型レベル自然数同士の大小関係を表現する項を作れるようにし,「n が m より小さい」ことを示す項と Vec m a を受け取って n 番目の要素を返す関数を定義してみた. 例によって一度ランタイムに compare して LT, …