[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 10/27 09:49 / Filesize : 201 KB / Number-of Response : 803
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

関数型プログラミング言語Haskell Part8



46 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 20:22:54 ]
ちょっとお前ら教えてくれよ
>>33の続きなんだけど
@
genNRandom :: Int -> IO ()
genNRandom n = do
  g <- getStdGen
  let ns = take n (randoms g)
  putStr $ show (ns :: [Int])

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

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

@はコンパイル通るけどAとBがダメなのはなんでなんだぜ?

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






[ 続きを読む ] / [ 携帯版 ]

全部読む 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<201KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef