Category: Programming

Clojure Don’ts: Lazy Effects

This is probably my number one Clojure Don’t. Laziness is often useful. It allows you to express “infinite” computations, and only pay for as much of the computation as you need. Laziness also allows you to express computations without specifying when they should happen. And that’s a problem when you add side-effects. By definition, a…

Read the full article

Clojure Don’ts: Concat

Welcome to what I hope will be an ongoing series of Clojure do’s and don’ts. I want to demonstrate not just good patterns to use, but also anti-patterns to avoid. Some of these will be personal preferences, others will be warnings from hard-won experience. I’ll try to indicate which is which. First up: concat.