(テキスト未定)
[topic:Haskell]
ITpro に 本物のプログラマはHaskellを使う - 第20回 更新を高速化するためのSTモナド が掲載されました。
先月言っていた ように今月は ST モナドの話です。今回提出した原稿の分量が多かったため、内容を二回に分割することになってしまいました。runST 関数の働きについての説明は次回に持ち越すことになるので、今回はひとまずその理解に必要になる拡張機能に親しんでおいて下さい。
これらの拡張機能の多くは既に Haskell' に追加される予定になっているだけあって,さまざまな場面で便利に使えます。ただ、今回は「次回のrunST 関数の働きなどの解説の準備のためにこれらの拡張機能を説明している」のであって「拡張機能の解説自体が目的」ではないので、あんまり深く踏み込んだ説明は行っていません。ライブラリや論文のコードなどを見ていると、この拡張機能をうまく利用しているものに出くわすので、いずれそうした実例を紹介してみたいと思います。
実用的な例以外では、「型無しラムダ計算などの本来静的な型付けを前提としない計算」を書いてみるのが良いと思います。(……もっとも、完全に非実用的なものは存在しませんが。)そうすれば、 Haskell 98 では書けなかったプログラム を (型宣言や型注釈が必要になるとはいえ)書けるようにする 強力さを肌で感じることができるでしょう。またこうした拡張の多くは、既に様々な処理系で取り入れられているため事実上の標準(de facto standard)と見なすこともできますし、次の Haskell' に取り入れられる予定のものとなっているため将来的な可能性に思いを馳せることもできます。これこそ現在進行形で発展中の言語の醍醐味といっても良いでしょう。
今日は RHG 読書会::東京 Practical Common Lisp に参加しました。
wxHaskell のファイル置き場 に、GHC 6.8.3 を使ってビルドした Windows 版と Power PC Mac OS X 版のバイナリを置いておきました。
Windows 版は、基本的には「(マイ ドキュメントなどの)空白文字を含むディレクトリを正常に扱えるようインストーラー(bat)を修正した」だけで、0.10.3 のソースからビルドしたものとほぼ同じものです。一方、Power PC Mac 版では、wxWidgets 2.8.7 を使ってビルドするために darcs の最新版のソースを使いました。darcs 版では非互換な変更が発生しているので、バージョン番号は上げておいた方がよかったかもしれませんね。
wxHaskell のページの管理者権限を貰っているので、今後も GHC の新バージョンがリリースされる度に適度にバイナリをリリースしていくつもりです。