act/state
Combining _state functions with do is so common that we have this simple
module to make things easier.
If you were previously writing actions like this:
import act.{do}
use state <- do(act.get_state())
use _ <- do(act.set_state("foo"))
use _ <- do(act.update_state(my_update_function))
Using the state module you can write this instead:
import act/state
use state <- state.get()
use <- state.set("foo")
use <- state.update(my_update_function)
Ah, much better! The functions read very nicely and eliminate some visual complexity.
Values
pub fn get(
f: fn(state) -> fn(state) -> #(state, b),
) -> fn(state) -> #(state, b)
Equivalent of get_state.
pub fn set(
state: state,
f: fn() -> fn(state) -> #(state, b),
) -> fn(state) -> #(state, b)
Equivalent of set_state.
pub fn update(
updater: fn(state) -> state,
f: fn() -> fn(state) -> #(state, b),
) -> fn(state) -> #(state, b)
Equivalent of update_state.