1
移動しきい値に基づいてランダム化されたブール値のリストを生成しようとしています。Haskell:リスト操作の中でIOアクションを実行して値を抽出する
これは私のコードです。問題の関数はisActionRandom
次のとおりです。私が意図したとおりに作成したリストは、タイプ[IO Bool]
ないIO [Bool]
あるので
randomBool :: Int -> IO Bool
randomBool p = do n <- randomRIO(1,100)
return (if n > p then True else False)
isActionRandom :: Float -> Int -> Int -> Int -> IO [Bool]
isActionRandom eps n m step = [ randomBool (floor (eps-(0.01*y) * 100))
| x <- [1..(n*m)]
, y <- floor(x/(m*step))]
isActionRandom
はコンパイルされません。各反復でIO関数からブール値を「抽出」し、目的のタイプのリストを作成するにはどうすればよいですか?
非常にマイナーな簡素化あなたが好きかもしれません:
をお使いの場合は、タイプを持つことになります '場合は、他の真偽のfoo '=' foo'です。 –