Module DA.Action.State

DA.Action.State

Data Types

data State s a

A value of type State s a represents a computation that has access to a state variable of type s and produces a value of type a.

> > > runState (modify (+1)) 0 > > > ((), 1)

> > > evalState (modify (+1)) 0 > > > ()

> > > execState (modify (+1)) 0 > > > 1

Note that values of type State s a are not serializable.

State

Field Type Description
runState s -> (a, s)  

instance Action (State s)

instance Applicative (State s)

instance Functor (State s)

Functions

evalState

: State s a -> s -> a

Special case of runState that does not return the final state.

execState

: State s a -> s -> s

Special case of runState that does only retun the final state.

get

: State s s

Fetch the current value of the state variable.

> > > runState (do x <- get; modify (+1); pure x) 0 > > > (0, 1)

put

: s -> State s ()

Set the value of the state variable.

> > > runState (put 1) 0 > > > ((), 1)

modify

: (s -> s) -> State s ()

Modify the state variable with the given function.

> > > runState (modify (+1)) 0 > > > ((), 1)