Liking cljdoc? Tell your friends :D

cats.labs.state

The State Monad.

The State Monad.
raw docstring

eval-stateclj/s

(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.
sourceraw docstring

exec-stateclj/s

(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.
sourceraw docstring

get-stateclj/s

(get-state)

Return a State instance with computation that returns the current state.

Return a State instance with computation that returns
the current state.
sourceraw docstring

MonadStateclj/s≠protocol

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-stateclj/s

(-get-state m)

Return the current state.

Return the current state.

-put-stateclj/s

(-put-state m newstate)

Update the state.

Update the state.

-swap-stateclj/s

(-swap-state m f)

Apply a function to the current state and update it.

Apply a function to the current state and update it.
sourceraw docstring

put-stateclj/s

(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.
sourceraw docstring

run-stateclj/s

(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]>
sourceraw docstring

stateclj/s

(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.
sourceraw docstring

Statecljs

source

state-tclj/s

(state-t inner-monad)

The State transformer constructor.

The State transformer constructor.
sourceraw docstring

state?clj/s

(state? s)

Return true if s is instance of the State type.

Return true if `s` is instance of
the State type.
sourceraw docstring

swap-stateclj/s

(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.
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close