The State Monad.
The State Monad.
(eval-state state seed)
Given a State instance, execute the
wrapped computation and return the resultant
value, ignoring the state.
Equivalent to taking the first value of the pair instance
returned by run-state
function.
Given a State instance, execute the wrapped computation and return the resultant value, ignoring the state. Equivalent to taking the first value of the pair instance returned by `run-state` function.
(exec-state state seed)
Given a State instance, execute the
wrapped computation and return the resultant
state.
Equivalent to taking the second value of the pair instance
returned by run-state
function.
Given a State instance, execute the wrapped computation and return the resultant state. Equivalent to taking the second value of the pair instance returned by `run-state` function.
(get-state)
Return a State instance with computation that returns the current state.
Return a State instance with computation that returns the current state.
A specific case of Monad abstraction for work with state in pure functional way.
A specific case of Monad abstraction for work with state in pure functional way.
(-get-state m)
Return the current state.
Return the current state.
(-put-state m newstate)
Update the state.
Update the state.
(-swap-state m f)
Apply a function to the current state and update it.
Apply a function to the current state and update it.
(put-state newstate)
Return a State instance with computation that replaces the current state with specified new state.
Return a State instance with computation that replaces the current state with specified new state.
(run-state state seed)
Given a State instance, execute the wrapped computation and returns a cats.data.Pair instance with result and new state.
(def computation (mlet [x (get-state) y (put-state (inc x))] (return y)))
(def initial-state 1) (run-state computation initial-state)
This should be return something to: #<Pair [1 2]>
Given a State instance, execute the wrapped computation and returns a cats.data.Pair instance with result and new state. (def computation (mlet [x (get-state) y (put-state (inc x))] (return y))) (def initial-state 1) (run-state computation initial-state) This should be return something to: #<Pair [1 2]>
(state f)
The State type constructor.
The purpose of State type is wrap a simple function that fullfill the state signature.
It exists just for avoid extend the clojure function type because is very generic type.
The State type constructor. The purpose of State type is wrap a simple function that fullfill the state signature. It exists just for avoid extend the clojure function type because is very generic type.
(state-t inner-monad)
The State transformer constructor.
The State transformer constructor.
(state? s)
Return true if s
is instance of
the State type.
Return true if `s` is instance of the State type.
(swap-state f)
Return a State instance with computation that applies the specified function to state and returns the old state.
Return a State instance with computation that applies the specified function to state and returns the old state.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close