プログラミングHaskellついに完了

16ヶ月もかけてしまったが、ついに全章の写経と練習問題を終えた!

この先も本で学ぶとすれば、「すごいH」本か、もしくは「Real World Haskell」だろうか?

でも、まずはrst76が紹介していた確率プログラミングかな。

例題だと、「雨が降る確率が0.3、その場合に芝が濡れる条件付き確率が0.9、スプリンクラーが回る確率が0.5、その場合に芝が濡れる条件付き確率が0.8、雨も降らずスプリンクラーも回らなかった場合に(何らかの理由で)芝が濡れる条件付き確率が0.1としたときに、『芝が濡れていた場合に雨が降った条件付き確率』を求める」というもの。

図示するとこんな感じ、のはず(理解が間違っていなければ)。

http://dl.dropbox.com/u/130665/blog/2012-08-08Rain.jpg

図から見れば

Pw(R) = P(W∩R)/P(W)

P(W) = P(Wr) + P(Ws) - P(Wr∩Ws) + P(Wo)

とかなんとかやって式を出せるんだろうけど、それをせずにHaskellに解かせたい、ということのはず(理解が間違っていなければ)。

(追記)Woには「雨も降らずスプリンクラーも回らなかった場合」なんていう条件はつかないかも……そうするとWrやWsとの交わりも考えないといけないのかな……