reader
* Computation type: Computations which read values from a shared environment.
* Binding strategy: Monad values are functions from the environment to a value. The bound function is applied to the bound value, and both have access to the shared environment.
* Useful for: Maintaining variable bindings, or other shared environment.
* Zero and plus: None.
* Example type: Reader [(String,Value)] a
The Reader monad (also called the Environment monad). Represents a computation, which can read values from a shared environment, pass values from function to function, and execute sub-computations in a modified environment. Using Reader monad for such computations is often clearer and easier than using the State monad.
Inspired by the paper Functional Programming with Overloading and Higher-Order Polymorphism, Mark P Jones (http://web.cecs.pdx.edu/~mpj/) Advanced School of Functional Programming, 1995.
Declaration of the ReaderT monad transformer, which adds a static environment to a given monad.
If the computation is to modify the stored information, use Control.Monad.Trans.State instead.
Read some text. If the read succeeds, return its value and the remaining text, otherwise an error message.
The parameterizable reader monad.
Computations are functions of a shared environment.
The return function ignores the environment, while >>= passes the inherited environment to both subcomputations.
Constructor for computations in the reader monad (equivalent to asks).
Constructor for computations in the reader monad (equivalent to asks).
The reader monad transformer, which adds a read-only environment to the given monad.
The return function ignores the environment, while >>= passes the inherited environment to both subcomputations.
See examples in Control.Monad.Reader. Note, the partially applied function type (->) r is a simple reader monad. See the instance declaration below.
Runs a Reader and extracts the final value from it. (The inverse of reader.)
The underlying computation, as a function of the environment.
The underlying computation, as a function of the environment.