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 |