すごいH本モナドを作るモナドは作りたいと思って作るものではない。Monadインスタンスを与える場合が多い。それぞれの数の存在確率の情報が足りないと気づく。確率も含めて表現するとこう、[(3,0.5),(5,0.25),(9,0.25)]数学では確率は0から1までの実数で表現する。確率を浮動小数で表現した場合、すぐに精度が落ちて困る。そのため、Haskellには分数のためのデータ型がある。Rationalと呼ばれる、Data.Ratioモジュールにある。分子と分母は%記号で区切る。12確率をRationalで表す。Showリストはファンクターであるので、Probもファンクターになれる。4)]}確率の総和は常に1である。これはモナドかどうか考える。リストのreturnは値を取って単一要素のリストに入れる関数。Probの場合も、単一要素を作るっぽい。等価であることを使って確率リストを平らにすることを考える。'a','b'が起こる確率が25%,'c','d'が起こる確率が75%とした場合の状況を確率リストで表す。Char)と入れ子になっている。リストの中の確率をp倍して、事象と確率の組のリストを返す関数。得られた入れ子リストを最後にリストとして平らにする。Monadインスタンスを書く。確率計算をするプログラムを書く。全部裏が出る確率をもとめる。40)]3枚とも裏が出る確率は、9/40になる。自分で書ける気がしない。(1)月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。