0

ランダムな値を返す汎用関数を作成しようとしています。float で動作するものを作成し、次に int で動作する別のものを作成できます...次のように:

randomFloat :: StdGen -> Float-> Float-> (Float, StdGen)
randomFloat rndGen min max = randomR (min, max) rndGen :: (Float, StdGen)

randomInt :: StdGen -> Int-> Int-> (Int, StdGen)
randomInt rndGen min max = randomR (min, max) rndGen :: (Int, StdGen)

しかし、関連する変数タイプに対して機能するものを1つ持っていたいと思います。どうすればいいですか?これまでのところ、私はこれを持っていますが、これは機能しません:

randomNbr :: (Random a) => StdGen -> a -> a -> (a, StdGen)
randomNbr rndGen min max = randomR (min, max) rndGen :: (a, StdGen)
4

1 に答える 1