2017-02-04 1 views

Répondre

2

est une instance de MonadReader vous permet d'utiliser les "opérations de lecture" (local, ask, asks), mais runReader est explicitement l'exécution d'un type de Reader.

Ainsi, par exemple, vous pouvez le faire à cause de monadReaderFun:

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

Mais il n'y a pas besoin de « courir », la façon dont vous le faites avec un Reader ou ReaderT valeur saisie.