見出し画像

関数型言語のモナド (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]


この記事が気に入ったらサポートをしてみませんか?