関数型プログラミング言語Haskell Part3
■ このスレッドは過去ログ倉庫に格納されています
0310デフォルトの名無しさん
NGNGHaskellでは関数は毎回同じ値がかえってこないといけないので、
そのようなものはありません。
では乱数はどうするかというと、
ramdom :: (RandomGen g) => g -> (a, g)
のように、generatorを渡して乱数を生成し、次のgeneratorを
返すことで実現します。
実際にはこのままでは使いにくいので、
randoms :: (RandomGen g) => g -> [a]
と無限リストにするか(これがお薦めです)、
C言語と同じ様に副作用によってgeneratorの状態を保存するために
モナドを用います。
# System.Randomで乱数関係の関数が定義されています。
■ このスレッドは過去ログ倉庫に格納されています