Haskellさんをいじってみた

「F#が面白いよ」「F#はVS2010に入るよ」という話を聞いてひとまず関数型言語をやってみようかと思い立つ。
どうせやるならF#やOCamlみたいなものではなくて純粋関数型言語の方が良いなぁということでHaskellさんにチャレンジ。
シーケンシャルに書く必要がないところは「○は×と△から成り立って、×は□から成り立って」などと論理構造をエイエイ書けて素敵な感じなのだが、世の中シーケンシャルじゃないとイカンものが沢山あって、最終的には「do〜」をワシワシ書いて手続型っぽくなってションボリな感じになってしまった。
当方は関数型言語初心者のため、スキル不足が大きな原因ではあると思うのだが、適当にWebから引っ張ってきたHaskellコードも「do〜」でシーケンシャルに書いてるところが結構多い。
これについては自分の理解がイマイチなだけで、実は「do〜」が多くてもそんなにガッカリするようなことではないのかもしれない。それとも、ユーザ/ファイル/ネットワークといった外部とのやり取りがメインになるアプリケーションはそういう形になってしまう運命なのだろうか。計算処理などHaskellで書いたコード内でほぼ閉じたアプリケーションの場合はもっときれいになるのかもしれない。
関数型言語のメリットについてはこのあたりを読めば分かるのかもしれないが、眠いのでまた今度。
なぜ関数プログラミングは重要か
ただ、何故かはわからないが、Haskellさんでコーディングしている最中は、ゴチャゴチャした処理はこまめに分割して書きたくなる欲求が強くなった。これは関数型言語による心理的作用なのか、Haskellさんの記法による心理的作用なのか、それとも気のせいなのか。たぶん気のせいだな。