2 ms·
here's a state machine representing a lock in elm: type State = Locked | Unlocked type alias Model = State lock : Model -> Model lock model = Locked
by querulous 11y ago
here's a state machine representing a lock in elm:
type State = Locked | Unlocked
type alias Model = State
lock : Model -> Model
lock model = Locked
unlock : Model -> Model
unlock model = Unlocked
open : Model -> Bool
open model =
if model = Locked then True else False
and here it is in erlang:
lock(_Lock) -> locked.
unlock(_Lock) -> unlocked.
open(locked) -> false;
open(unlocked) -> true.
i think working with state machines in imperative languages is messy, mistake prone and hard to reason about. functional languages are just better for managing state