迷いませんか?

プログラミング、電子工作、ゲーム・・・etc、色々やるけど中途半端なブログです。

すごいH本もいよいよ大詰め!

一昨日と昨日は食い過ぎかなんかわかりませんが異常に腹が痛く気持ち悪かったです

あと先週ぐらいに某芋氏をリスペクトしてぱく・・・してgithub.ioでホームページを作る準備しました。
いやー、いろいろとなんかコミットとかプッシュできなくてビビったけどできてよかったです。
全然出来てないけど

そして今日は妹の運動会!これは見に行かねば!
しかしプログラミングの勉強したいから見に行かなかった!



午前中はずっとすごいH本を見ていて14章を終わらせました。
最後の演習問題ね、むずかしいよ、なんなの?
>>=ってモナド値を一般の値をとってモナド値を返す関数に渡せる関数じゃなかったんですか?
なんなのもう・・・
予想できなくてね、適当に
merge :: Prob Bool -> Prob Bool
とかの関数作ってみてもうまく動かんくてうーんってなるし、
結局のところ他人のブログを見るという最低な行為をした結果最初のアプローチで根気よく続けていれば成功してた。
成功してたんだ!だから!だから見たことは関係ない・・全部僕が考えたってことに・・・

なんないですよねー
まあいいや完成品のコードはこちらです

merge :: Prob Bool -> Prob Bool
merge (Prob xs) = Prob $ (foldl sumRatio [(True, 0%1), (False, 0%1)] xs)

sumRatio :: [(Bool, Rational)] -> (Bool, Rational) -> [(Bool, Rational)]
sumRatio [(True, tr), (False, tf)] (x, r) 
    | x == True = [(True, tr + r), (False, tf)]
    | otherwise = [(True, tr), (False, tf + r)]

ほぼパクリですよすいませんでしたね−!
けど僕の最初はfoldlのアキュムレータを別のにしてたりsumRatioの型宣言が違ったりしただけで
ほとんど同じなんです・・・信じてください・・・

まあこれが終わったらHakyllの勉強してサイト作成に励んでいきたいと思っているので
一切期待しないでお待ちくださらないでください(間違った敬語の可能性があります)
yesodもやりたかったけど公開するのにheroku必要感あってやめた

それでは