RHG
本日はRHGのふつける読書会にきています。
今回のモナドからです。
以下メモ
x >>= f = concatMap f xs
[x] >>= f
concatMap f [x] -> map [f x]
[x] >>= f
concatMap f [x]
concat (map f [x])
[f x] -> f [(1,2)] -> []
IOモナドのところで評価と実行は違うということが話題になりました。
f:: (x,w) -> (b,w) f:: a -> (w -> (b,w))
main = do <-getStdGen let ns = take 3 (randoms g) print (ns::[Int])
は次の二つのように書き換えられる
getStdGen >>= \g -> print (take 3 (radoms g))
getStddGen >>= rndoms >>> take 3 >>> put
ポイントフリースタイルの書き換え
f . g = \ x -> (g x) f . g = \ x -> g (f x)