07/04/07 00:49
プログラム言語Haskell

好奇心から、いつも新しい技術は一通り目を通すくせがありますが、最近本屋で見つけたHaskellを勉強しています。過去にいろんなプログラム言語を勉強し、仕事でも使ってきましたが、今回のHaskellはオブジェクト指向言語がでてきたときのように、今までとは違う新しい考え方をする必要があるようです。10年くらい前、LISP言語の本を沢山買い込み習得を試みましたが、頻繁に使うわけではなく、なかなか身につきませんでした。しかし言語の思想的なものを学習することができ、その語の言語の習得にヒントになるものが多々ありました。今回のHaskellもLISPの概念はとても役に立っています。こういった言語は解説書も難解なものが多い傾向にありますが、Haskellはとてもわかりやすい本があるのでちょっと驚いています。(といっても Haskellがわかりやすいとは言えませんが..)C#の次の仕様にもHaskellの遅延評価等が取り入れられるとも言われ、オブジェクト指向の次のパラダイムになっていくのではないでしょうか。
間違っていることを恐れずに、私なりに有用だと思っていることをあげるとすると、抽象化がさらに推し進められ、コーディング量をさらに少なくできるということや、関数の結合、合成が柔軟にできることによって、拡張性、保守性に優れているということでしょうか。ループ構文がなく、再帰や無限配列等で実現している等、徹底的に関数型言語の特徴を貫いています。こういった思想的に綺麗な言語は好きですが、実用で使っていかないと、またLISPのようになってしまいますので、今回は何か形になるものを作れたらと思っています。それができなくとも新しい概念が理解できると、考え方の幅が拡がったようで、ちょっと充実感を感じたりします。仕事でありきたりのフローのコーディングばかりで、プログラムを楽しめなくなった方、一度試してみてはいかがでしょうか。 (Windows Haskellコンパイラ・インタプリタ: GHC)