関数型言語

最近、巷で話題を呼んでいる(らしい)関数型言語Haskell。というか、デザインパターン本で著名な結城浩氏が結城浩のHaskell日記を書いていたり、オープンソースマガジン10月号に掲載されている特集記事「プログラミング言語の進化を追え」にHaskellが登場したり、とこの手の記事を読んでいるとよく話題に上ってくるのです。「プログラミング言語の進化を追え」にある通り、コンピュータの性能向上とプログラミング対象となるアプリケーションの複雑化に伴い、プログラミング言語自身も進化しています。近年注目を集めている機能は以下の通り。

特に最近はクロージャに関して注目が集まっており、JAVAはJDK7でクロージャをサポートする方針のようです。クロージャは元々、LispHaskellなどの関数型言語の生産性を生かすために必須な機能です。そんなわけで、関数型言語クロージャという概念を解釈するためにこの本を衝動買いしました。

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門

私は別に最新技術を追っかけたいわけではなく、いちプログラマとして、

  • 生産性(アプリケーションに必要な記述を短く記述可能)
  • 汎用性(複数のアプリケーションにソースコードを流用しやすい)
  • 自己完結性(他のソースコードにバグの影響を与えない)
  • 安全性(確保していないメモリ領域へのアクセスを検出可能)
  • 保守性(機能変更・拡張に伴うソースコードの修正・追加量が少なく、バグを起こしにくい)

を高いレベルで満たすためにプログラミング言語として必要な機能に興味があるだけです。なぜなら、これによってプログラミングの作業効率を上げることができ、その結果、アプリケーションの仕様やクラス構造など、創造性のある作業に時間を費やすことができるからです。
私の解釈がまとまり次第、ここで書き連ねてみたいと思います。