Exploring functional reactive programming with Clojure.