是否有标准的读者应用实例?

时间:2014-12-02 17:04:10

标签: haskell

是否有一个已经存在的实例,例如我在此blog post中找到的实例?

data Reader r a = Reader (r -> a)
instance Functor (Reader r) where
    fmap f (Reader x) = Reader (f . x)
instance Applicative (Reader r) where
    pure x = Reader $ pure x
    (Reader f) <*> (Reader x) = Reader (f <*> x)

1 个答案:

答案 0 :(得分:6)

是。当Applicative本身在范围内时,(->) r的实例也在范围内。 (对于您编写的代码甚至类型检查,情况必须如此 - 您是否注意到Applicative的{​​{1}}实例刚刚发送到Reader实例{ {1}}?=)