Hacker News new | ask | show | jobs
by brudgers 4583 days ago
Statements are pretty rare in any of the Lisps since the basic syntactic form is the s-expression.

I believe immutable values are a result of programming style. A person can choose to use Clojure's Vars, Refs, Agents, and Atoms [1] even though Clojure tends to encourage a functional programming style. Clojure inherits the functional programming tradition from the larger Lisp family (as does Racket).

That said, Rich Hickey has a great of describing how to avoid unnecessary mutation - usually you want the next value so just make a new one rather than changing the existing one.

[1] http://clojure.org/vars