いけがみです。

最近、皆さんは Haskell で何かプログラムを
  [作った|作っている途中|作ろうとしている]
ということはありませんか?

私はプログラムが完成したら、このメーリングリストで
お知らせしようと思っていたのですが、ネタを振るということで、
完成前にアイデアを出します。

* Haskell - Macromedia Flash interface
Macromedia Flash はアニメーションフォーマットです。
今のところ、

  movie :: MovieStateMonad ()
  movie = do setBackgroundColor greenColor
             drawRect blueColor 10 10 20 20 -- 数字は座標
             nextFrame
             drawRect redColor 50 50 60 60

  main :: IO ()
  main = writeMovie "foo.swf" [... (some options) ...] movie

というようなものが動いています。
これは 2 つの紙を持つ紙芝居で、背景が緑色で塗られていて、
最初の紙では、青い四角がありますが、次の紙に移ると赤い四角が現れる、
というものです。プログラムそのままです。

今の仕様では、時系列順にアクションを書き並べていくという方法
をとっていますが、最終的には Fran のような reactive programming の 
interface がついたら面白そうだと思っています。

* Haskell - zlib interface
zlib は gzip format によるデータ圧縮/伸長ライブラリです。

Macromedia Flash は gzipped されたファイルをサポートしています。
そこで zlib が必要になりました。greencard と ghc 6.4 の Cabal を
使って、zlib の wrapper を作ろうと思っています。
greencard も Cabal もどちらも使うのはとても簡単でした。

zlib 自身は C 言語で書かれたライブラリなのですが、
zlib の設計は無限長 stream も許すようになっていて、
Haskell の state monad と相性がよさそうです。
そこで、しばらく Flash は中座して zlib の interface を
眺めたりしています。

これらはすでに誰かが作っていてもおかしくないので、
もしも御存じでしたら教えてください。あと、協力/コメントは歓迎です。


--
ML: haskell-jp / quickml.com
使い方: http://QuickML.com/