手続き型に慣れた人にもやさしい、こわくないHaskell入門記事です。
「なぜHaskellを学ぶと良いか」も参考にしていただければ幸いです。
まえがき
Haskellと聞いて、何を思い浮かべますか?
- モナド
- 関数型
- 遅延評価
- 第4世代Intel Coreプロセッサ
- アライグマ
いろいろ思い浮かべるかもしれませんが、Haskellがすばらしいのはモナドを利用しているからでも、遅延評価型の純粋関数型言語だからでもありません。
いろいろな「Haskellらしさ」が集まって、その結果Haskellにしかないすばらしい魅力を提供してくれます。
それは、決していままでのパラダイムと対立するものではなく、
- 手続き型
- 構造化プログラミング
- オブジェクト指向
のようなこれまでの便利な道具をうまく抽象化しながら統合して作り上げられたものです。
- PHP
- javascript
- C++
- Java
などにあなたが費やしてきた時間は無駄にはなりません。
関数型だったり、モナドを使っているからと言って、怖いものではないのです。
しかし、世の中には「オブジェクト指向と関数型の宗教戦争」のような我々と異なる世界線でのできごとを持ちだして、我々を混乱させようとする闇の組織も存在します。
そういった背景もあってか、新しくHaskellを学ぶ人は
- 関数型とはどういうことか
- Haskellはなにがこれまでと違うのか
を知りたがっていることが多く、そのためか多くの入門書も既存の手続き型ベースな(もちろんオブジェクト指向も手続き型ベースです)プログラミング言語と異なる点を強調しています。
とはいえ、そろそろHaskellも門戸を開き、「にわか」の参入を許してもいい頃ではないでしょうか。
きっと、お行儀のいいHaskellなら、にわかが増えてもPHPみたいな悲惨なことにならないでしょう。
そこで、怖いお兄さんたちからマサカリが飛んでくるのを恐れず、
- Haskellは怖くないよ
- いままでと違わないよ
を根本においたHaskellの入門記事を書いてみようと思います。
Haskellと手続き型の関係については、あとで@ruiccさんのモナド入門以前あたりを読んでみると面白いかもしれません。
対象者
- なんかもっと生産性の上がる言語を習得したい人
- なんかHaskell入門しようとして挫折しかけた人
- なんかマサカリ投げたい怖いお兄さんたち
結論
Haskellこわくないよ。
とっても便利だよ。
とっても学習障壁ひくいよ。
なのに、スクリプト言語みたいにサクサクかけて、コンパイル言語の実行時性能をもってるよ。
しかもたいていのありがちなバグはコンパイラさんが見つけて教えてくれるよ。
バグが入りにくいから金融系とかでも使われ始めてるらしいよ[^要出典]
突然の終焉
残念ながらこの記事はここで終わりです。
一部の人間のクズみたいな人たちがクソみたいなコメントをつけたからです。もちろん多くの人は称賛してくれました。でも、そんなクズがいるなら無料で公開する気なんかなくなりますよね。ま、いつも文句ばっかりでまともに自分の手で何かを生み出したこともないクズにはそういう気持ちはわからないだろうけどさ。
この記事はとても価値のあるものですから、読みたい方には有償で内容のバックアップをお配りします。「成長したいっす!」なんて口だけじゃなく、身銭を切る覚悟がある方はTwitter(現X)かなんかで連絡してお金を払ってください。