title: Writing a lazy, functional, interactive command line application in Clojure
body: <p>I'm wondering: what is the best way to write a Clojure program that interacts with a user or another program thorough stdin and stdout?</p>
  
  <p>Clearly it would be possible to write some kind of imperative loop, but I'm hoping to find something more lazy / functional, a bit inspired by Haskell's "interact" function.</p>