1-1. Haskellってナニモノ?

Haskellと聞くと、難解でわかりにくい、概念的, というような負のイメージが 連想されますが、ひとたびマスターしてしまえば、非常に便利で魅力的な言語です。 今回は、そんな不思議なプログラミング言語Haskellを概観してみましょう!

Haskellはコワくない!

おそらくこのWebサイトを訪問してくださった皆さんの多くは、Java、C、Python などなど、とにかくHaskell以外の言語を使ったプログラミングの経験がある方だと思います。 (プログラミング初心者でHaskellに挑戦しようという勇者も大歓迎ですが...)

Haskellを学ぼう!と思い立った皆さんの中にはもちろん「必要に迫られて」という方もいらっしゃるとは思いますが、おそらく多くの方が「難しそうだけど、ちょっとほかの言語とは一味違う感じでおもしろそうだ...」という好奇心から興味を持ったのではないかと思います。

Haskellには、とにかく「難しい」「数学の知識が必要」「概念的」というようなとっつきにくい印象がつきまといます。 もちろんそれらの印象は決して間違いとはいえませんが、しかし私たちの向学心を打ち負かすほどのものではありません。

「難しい」といっても、新しいことを学ぶのだからそう簡単では困ります。 しかし少しの根気さえあればへこたれるほどの難しさではありません。
「数学の知識が必要」といっても、必要なのは豊富な「知識」ではなくちょっとした数学的な「考え方」です。 中学生のときに、数学の授業にまあまあついていけていたなら、内容はまるっきり忘れていても問題ありません。
「概念的」というのも間違いではなく、実際に言語設計の裏には「圏論」などの高度な概念が隠れています。しかしそれらを理解しなければHaskellを使えないわけではありません。私もよくわかっていません。

Haskellは「関数型言語」だ!

さて見出しのとおり、Haskellは「関数型言語」なのですが、そもそもプログラミング言語は、その性質によっていくつかの種類に分けられます。 ここでおさらいしておきましょう。

さてこれらの分類は、プログラミングにおける考え方の枠組みとして 「パラダイム」と呼ばれます。 また実際には、これらの性質を併せ持った「マルチパラダイム」の言語も 数多くあります。

私たちがこれから学んでいくHaskellは、関数型言語の中でも特に 「純粋関数型言語」と呼ばれるものです。 例えば関数型言語のひとつであるScalaは、オブジェクト指向や手続き型の性質も あわせもったマルチパラダイム言語でかなり使いやすいのですが、 Haskellにはそういう要素が(ほぼ)まったくありません...!

そう!Haskellで書いたプログラムは、関数の組合せだけで記述されているのです! Haskellの簡潔で美しいコードは、その厳密なルールに裏打ちされているのです。

プログラミングを仕事や趣味にしている方は、自分の書いたコードの洗練された美しさに 惚れ惚れしてしまったという経験が何度かあるでしょう。 その感性のあるプログラマであれば、 Haskellのもつ美しい厳密性にハマってしまうこと請け合いです。


さて次回は、Haskellに代表されるような関数型言語がもっている、 ちょっと変な特徴を紹介していきます。それではお楽しみに!

目次へ戻る> <次ページへ