State is parameterized by two types: a state <code>s</code> and a result <code>a</code>.
State should wrap a function of the form <code>s -> Pair a s</code> and can be constructed by providing a function of this form. There are three methods available on the State for running with a given initial state.
Implements: Monad
The State constructor.
| Param | Type | Description |
|---|---|---|
| f | function |
A function of the form s -> Pair a that is wrapped by the State. Nothing is executed until it is run with an initial state s. |
The State constructor that populates the right portion with its argument. of essentially lifts a value of type a into a State.
| Param | Type | Description |
|---|---|---|
| v | any |
Any value that needs to be lifted into the State |
Gets a stringified version of the State.
Applies the function f to the right portion of the State.
| Param | Type | Description |
|---|---|---|
| f | function |
Function |
Gets the function within the State.
ap allows for values wrapped in a State to be applied to functions also wrapped in a State. In order to use ap, the State must contain a function as its value on the right side.
| Param | Type | Description |
|---|---|---|
| t | State |
A State with a function as its right element |
Chains together many computations that return a State.
| Param | Type | Description |
|---|---|---|
| f | function |
Function that returns another State |
Since State is a lazy datatype that requires an initial state to run, it provides a runWith method that takes in an initial state and returns the result of the computation as a <code>Pair result state</code>.
| Param | Type | Description |
|---|---|---|
| s | any |
An initial state that needs to be passed to the State |
When called, execWith will run the state transition with the given value as the initial state and return the state.
| Param | Type | Description |
|---|---|---|
| s | any |
An initial state that needs to be passed to the State |
When called, evalWith will run the state transition with the given value as the initial state and return the result.
| Param | Type | Description |
|---|---|---|
| s | any |
An initial state that needs to be passed to the State |