C言語からHaskellへの変換

http://www.sun-inet.or.jp/~yaneurao/ こちらにてD言語にも移植されている
http://www.glexcess.com/ このデモをHaskellに移植してみた。
実は去年の夏ごろに移植しようかと思っていたのだが、
GHC6.2ではHOpenGLからテクスチャサポートがはずされていたので
断念せざるを得なかった。
そういうわけなので、GHC6.4が出た暁には移植してやろうとかねてより
考えていたのだが…。

http://fxp.infoseek.ne.jp/haskell/glexcess_haskell.zip

ここにシーン1とシーン2を移植したものを公開してみた。
どうしてシーン1とシーン2だけなのかというと、
あまりにも移植作業が大変だったもんで
このあたりで力尽きてしまったというか、なんというか。
というわけで、先日書いたHaskellで書くのが大変なものというのは
与えられたCプログラムと同じ動作をするプログラムのことであった。
グローバル変数や配列などを使われるとすんなりと
コードを変換することが非常に困難になってしまう。
そういうわけなので、それなりにまともに書こうと思うと、
Cのプログラムが何をやろうとしているのかを逆に読み取り、
そういうことを行うHaskellプログラムを書く必要がある。
IORefを使いまくってプログラム全体をIOまみれにしてやったら
一対一対応もつくのかもしれないが…うーむ。


…ということで、このプログラム、システム部分は割と綺麗に書けていると思うので、
残りのシーンをどなたか移植して下さりはしないだろうか。
残り10シーン…ぐは…うんざりだ。