Cross-posting - Clojure program behaves differently in repl vs lein run
Laziness. It's a common beginner mistake: do not mix laziness with side-effects (printing). Use run! instead, or doseq -- or if you really want the results back, mapv to get a vector.