A trivial implementation of a state machine protocol in Clojure.
Investigate the documented examples in src/finite-state-machine/examples.clj in the repl. You can also play around with the Game Of Life - Glider Gun in glider-gun.clj or just start it (no interactivity) with lein run.