はじめに
この記事は Haskell 入門からモナドまでを最速でマスターするための方法をまとめたシリーズの Part 0 です。対象読者は Haskell におけるモナドを理解して、使いこなせるようになりたいすべての人です。
Haskell といえばモナドですが、モナドの習得は簡単ではありません。Google でモナドについて検索しても、圏論との関係性について力説した記事や、ある程度 Haskell を理解していないと読み解くことが困難な記事が多く、その記事を読むだけでは習得できません。しかし、モナドは一部の頭の良い人しか理解できない概念というわけではありません。
プログラミング初学者がC言語を勉強する場合、多くの人はポインタで一度躓きます。ですが、代入や参照、そしてアドレスなどポインタを知る上で必要な概念を一つひとつ確実に理解していくことで、ポインタを使いこなすことができるようになるでしょう。Haskell におけるモナドも同様に、モナドを理解するために必要な概念を段階を踏んで理解していくことで確実に習得できます。
このシリーズでは、モナドを理解するために必要な概念を、Haskell の基礎的な内容から順番に紹介していきます。そして、実務で Haskell を使えるレベル、つまり、自分の作りたいアプリケーションに応じてモナドを組み合わせて実装できるレベルまで導きます。
モナドマスターまでの道のり
このシリーズでは、以下の道のりでモナドをマスターしていきます。
- Part 0: 準備
- はじめに
- モナドマスターまでの道のり
- GHCのインストール
- Part 1: 型クラス
- 関数と型
- 様々な構文
- 型クラスとインスタンス
- Part 2: Monad
- Functor, Applicative Functor, Monad
- do 記法と様々なモナド
- Part 3: Real World
- Cabal, Stack
- Monad Transformer
Part 0 では準備段階としてモナドをマスターするための道のりを紹介し、Haskell を実行できる環境づくりのために GHC のインストール方法を紹介します。
Haskell におけるモナドは型クラスの一種です。したがって、モナドを理解するためには型クラスについても理解する必要があります。そのため、Part 1 では Haskell の機能の一つである型クラスの習得をゴールとして、Haskell の基礎である関数や型から順番に紹介します。
型クラスについて理解できても、いきなり Monad 型クラスを理解することは困難です。Functor 型クラスと Applicative Functor 型クラスを順番に理解することで、Monad 型クラスが理解しやすくなります。Part 2 では、Functor, Applicative Functor, Monad の順にそれぞれの型クラスを紹介し、モナドを使ったプログラムに必須な do 記法と様々なモナドの紹介を行います。
そして、Part 3 では現実世界に存在する様々なモナドと向き合うための準備として、Haskellのパッケージ管理ツールである Cabal と Stack について紹介し、Monad Transformer によるモナド組み合わせる方法について紹介します。
GHCのインストール
モナドまでを最速でマスターするためには、手を動かすのが一番の近道です。このシリーズでは Haskell の 代表的なコンパイラ GHC が提供するインタプリタ GHCi を使って Haskell の説明を行います。
GHC は様々なインストール方法が存在しますが、最終的にモナドをマスターして使いこなすレベルまで到達したいのなら、 GHCup によるインストールをおすすめします。GHCup は Part 3 で紹介する Cabal と Stack のインストールもできるようになっているので、一石二鳥です。
OSによってインストール方法が異なるため、ここではインストールの手順の紹介は省きます。
GHCのインストールが完了し、 ghci コマンドが実行できたら Part 0 は終了です。
$ ghci --version
The Glorious Glasgow Haskell Compilation System, version 8.10.7
次回予告
次回は「Part 1: 型クラス」です。モナドへの第一歩として、Haskellの基礎から型クラスまでを説明します。
投稿したら、こちらにリンクを張ります。
この記事をストックしておくと、通知が送られるので、続きが気になる方はぜひストックしてみてください!
おまけ
次回の記事がいつ投稿できるかは未定です。投稿を待つよりも、自分で本を読んで手を動かした方が最短でモナドをマスターできます。
「すごいHaskellたのしく学ぼう!」と「プログラミングHaskell 第2版」はHaskellについて基礎から説明されている本なので、はじめて読むHaskellの本として最適です。
「Haskell入門 関数型プログラミング言語の基礎と実践」と「入門Haskellプログラミング」はHaskellの基礎だけなく、よく使われるパッケージの紹介やHaskellの実践的な活用方法が書かれているため、二冊目以降に読む本としておすすめです。
また、本以外にもネット上には様々なHaskell入門のサイトがあり、特に、モナドに到達するための方法がまとめられた別の記事も Qiita にいくつか存在するので探してみてはいかがでしょうか。