4
簡單下面的代碼無法推斷出(MonadRandom R)
import Control.Monad
import Control.Monad.Random
psum :: (MonadRandom r) => Int -> r Double -> r Double
psum n x = fmap sum $ replicateM n x
(函子R)產生了錯誤:
Could not deduce (Functor r) arising from a use of `fmap'
from the context (MonadRandom r)
這是怪我,因爲
class (Monad m) => MonadRandom m where ...
in Control.Monad.Random.Class
源文件,並且由於monads是仿函數,因此GHC應該推斷r
是af在我的情況下,unctor。我也嘗試導入Control.Monad.Random.Class
沒有成功。
在r
上手動添加Functor
約束的作品,但我覺得這很難看。
我在這裏錯過了什麼?
啊哈。我正在做太多的數學。謝謝你,先生。 –