相关疑难解决方法(0)

错误"无法推断(a~b)"是什么意思?

我正在修改以下代码作为任务的一部分:

rand :: Random a => State StdGen a
rand = do
    gen <- get
    let (x, gen') = random gen
    put gen'
    return x
Run Code Online (Sandbox Code Playgroud)

我被要求编写一个函数randR来完成与函数相同的任务,rand但允许指定范围.所需的类型是Random a => (a, a) -> State StdGen a.我写了以下代码:

randR :: Random a => (a, a) -> State StdGen b
randR (lo, hi) = do
    gen <- get
    let (x, gen') = randomR (lo, hi) gen
    put gen'
    return x
Run Code Online (Sandbox Code Playgroud)

这看起来正确; 它几乎就像模型一样.但是我收到以下错误:

Could not deduce (a ~ b)
from …
Run Code Online (Sandbox Code Playgroud)

haskell types

2
推荐指数
1
解决办法
232
查看次数

标签 统计

haskell ×1

types ×1