関数型言語に思うこと
関数型言語を利用したアプリケーションは少ない。でももっと色々作れるのでは?という話。主にHaskellを念頭において書く。
Haskell製アプリケーションの実例。
- Pugs
- Perl6インタプリタ。本家よりも先に実装。
- darcs
- バージョン管理システム。パッチ志向。
- xmonad
- Window Manager。タイル志向。
関数型言語が得意なこと。
- 複雑な計算
- 当然。
- リスト処理
- 文字列もリスト。
- 短期間開発
- コード量自体が小さい。
- 分散処理
- 分散処理が手軽にできる。
次のようなアプリケーションなら。
- 入出力の対応が明確
- 対応関係が複雑になればなるほど関数型が有利。
- 入力データが巨大
- 分散処理が可能なら有利。
つまり、例えば。
- 為替や株のシステム取引
- 予想価格の計算式をそのまま入れればOK。
- Webアプリケーション
- クエリ+データベース=出力という対応で考える。とにかく開発が速く、そこそこスケーラブル。