Monad读者和部分功能的应用

时间:2017-02-04 12:24:20

标签: monads purescript

由于部分应用函数are instances of the MonadReader,为什么以下代码不正确?

runReader (\x -> x + 2) 4 

甚至

runReader (\x -> pure $ x + 2) 4

1 个答案:

答案 0 :(得分:2)

作为MonadReader的实例,您可以使用"阅读器操作" (localaskasks),但runReader明确用于运行Reader类型。

例如,您可以执行此操作,因为monadReaderFun

readerFunction :: Int -> Int
readerFunction = do
  x <- ask
  pure (x + 2)

但是没有必要&#34;运行&#34;它,使用ReaderReaderT类型值的方式。