関数型プログラミング言語Haskell Part8at TECH
関数型プログラミング言語Haskell Part8 - 暇つぶし2ch46:デフォルトの名無しさん
07/11/06 20:22:54
ちょっとお前ら教えてくれよ
>>33の続きなんだけど

genNRandom :: Int -> IO ()
genNRandom n = do
  g <- getStdGen
  let ns = take n (randoms g)
  putStr $ show (ns :: [Int])


genNRandom :: Int -> String
genNRandom n = do
  g <- getStdGen
  let ns = take n (randoms g)
  show (ns :: [Int])


genNRandom :: Int -> [Int]
genNRandom n = do
  g <- getStdGen
  take n (randoms g)

①はコンパイル通るけど②と③がダメなのはなんでなんだぜ?

で、
URLリンク(www.sampou.org)
読んでたらなんとなく分かった気がしたんだけど要するにIOモナドは1方向モナドで、値が取り出せないし、
IOモナド使ってる関数は返り値の型が絶対IO()とかになるから参照透明じゃないのが他の関数まで波及しないよって意味なのか?
じゃMaybeとかStateとかは使っても参照透明なままなのか?


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch