Take the 2-minute tour ×  I'm implementing a litte "game" thing
in Clojure. So far I'm passing around a "world status" object
among functions. It is very "functional" and I can simulate any
moment of the game by simply feeding the system a made-up world
state.  Since Clojure has a very sophisticate system for
managing state (references, atoms...) I wanted to know what is
the more idiomatic way of programming Clojure, whether to use
its system or to stick to a more functional approach.    This is
an interesting read I've just found describing more or less the
pattern I'm using.  share|improve this question  3 Answers 3  up
vote 11 down vote accepted  Pure functions are already idiomatic
Clojure. The reference types (ref, atom, agent) are there to
coordinate shared state.  As long as nothing is shared (you
aren't updating the world in one thread while rendering in
another, or coordinating multiple players on their own threads)
there is no reason to share state, and thus no reason to break
from purely-functional