生成随机元组Haskell

use*_*128 4 random haskell tuples

我想知道是否可以使用以下代码生成随机元组:

take 4 $ randomRs ((0,0),(70,100)) $ mkStdGen x  :: [(Double,Double)]
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我得到错误:

No instance for (Random (Float, Float)) arising from a use of 'randoms'

有没有办法在不使用的情况下获得随机元组zip

Mat*_*hid 7

基本上错误信息是说没有定义的方法来制作随机元组.但是你当然可以自己添加一个.

在我的头顶(即,我没有实际测试过这个),你可以做类似的事情

instance (Random x, Random y) => Random (x, y) where
  randomR ((x1, y1), (x2, y2)) gen1 =
    let (x, gen2) = randomR (x1, x2) gen1
        (y, gen3) = randomR (y1, y2) gen2
    in ((x, y), gen3)
Run Code Online (Sandbox Code Playgroud)

现在你可以使用randomR在元组(前提是该类型的元组支持随机生成).