![見出し画像](https://assets.st-note.com/production/uploads/images/101408722/rectangle_large_type_2_f7049714df296a291c701286ba1d7b10.jpeg?width=1200)
関数型言語のモナド (2)
ここ最近、関数型言語はバグの発生しにくさ、並列実行のしやすさで注目を集めています。 そのため、ここで Haskell に実際に触れてみることは、間違いなく有意義なことになると信じてください。
新しい言語を利用できる環境を作るのは大変なことですが、是非 Haskell のインストールに挑戦してみてください!
Windows, Mac, Linux のいずれであっても「GHCup」をインターネットで検索して、それでインストールするのが一番簡単です。
GHCup を利用する場合、GHCup 公式トップページに記載されているコマンドを、Windows なら PowerShell、Mac や Linux ならターミナルでコマンドを実行します。
GHCup でインストールを実行すると、「HLS」や「stack」などをどうするか尋ねられますが、すべて default で問題ありません。Haskell に関心を持つようになり、HLS や stack などを利用したくなったら、後で GHCup を用いて追加でインストールすることができますので安心してください。
何度かエンターキー(特にエンターキー以外を触る必要はなかったと思います)を押すとダウンロードが始まりますので、しばらく待ってください。私の場合は 5分ほどかかりました。画面が止まったように見えても、画面に「All done!」と表示されるまで、気長に待ってください。
「All done!」と表示された後は、PowerShell やターミナルの画面を閉じて、もう一度 PowerShell やターミナルを開いて、「ghci」と入力してください。Haskell を利用できるようになります。
まず、単純な計算機として使ってみましょう
以下では、ghci> となっていますが、Prelude> と表示されている場合もあります。 どちらで表示されていても動作はまったく同じです。
下の例において、it というのは直前の計算結果を指しています。
ghci> 3 + 4 * 5
23
ghci> it + 10
33
適当な名前に値を設定しておくことにより、便利な計算機として利用できます。
ghci> a = 5 + 10
ghci> a
15
ghci> 2 * 3
6
ghci> a + it
21
ghci> b = 10
ghci> a + b
25
ghci> a + b + it
50
List
リストは、同じ型のものの列を表します。空リストは [] で表します。
「型」というプログラミング用語を知らなければ、「同じ型」とは「同じ性質」のもの、と考えてください。 数値なら数値同士、文字なら文字同士、と考えてください。
List モナドの解説において、List を操作するため、ここで少し操作を試してみてください。
ghci> [1, 2, 3]
[1,2,3]
ghci> []
[]
ghci> ["ab", "cde", "fghij"]
["ab","cde","fghij"]
異なる型のものを1つのリストに入れようとするとエラーとなります。
以下はエラーとなります。
ghci> [1, "test"]
リストは以下のように自動生成できます。
ghci> [1..10]
[1,2,3,4,5,6,7,8,9,10]
ghci> [1.0, 1.25..2.0]
[1.0,1.25,1.5,1.75,2.0]
ghci> [1, 4..15]
[1,4,7,10,13]
ghci> [10, 9..1]
[10,9,8,7,6,5,4,3,2,1]
リストの連結操作は ++ で行います。
ghci> [1,2,3] ++ [4,5]
[1,2,3,4,5]
ghci> [1..4] ++ [5, 7..11]
[1,2,3,4,5,7,9,11]