Random
mainの中でmkStdGenするぎりぎりまでIOモナドで包まない、ってのにチャレンジしてみた。
import Random dice :: (RandomGen g) => g -> (Int, g) dice g = randomR (1, 6) g dice_seq :: (RandomGen g) => g -> [Int] dice_seq g = let first_result = dice g in (fst first_result) : map fst (iterate (dice.snd) first_result) main = print $ take 10 $ dice_seq $ mkStdGen 1