use*_*827 8 monads haskell typeclass
在Real World Haskell的第15章中,定义了一个类型类:
class (Monad m) => MonadSupply s m | m -> s where
Run Code Online (Sandbox Code Playgroud)
稍后几段,它说因为上下文而不需要定义>> =和return.但是没有进一步解释上下文意味着什么.
如果只有'm'是Monad的实例,编译器如何知道MonadSupply是Monad的实例?
在"上下文"只是之间的部分class
和=>
,在这种情况下是约束Monad m
.而且它并不是"知道",更多的是它强制执行它 - MonadSupply
为m
不具有Monad
实例的类型编写实例将产生编译器错误.
归档时间: |
|
查看次数: |
730 次 |
最近记录: |