> Immutable data structures are great, but when it's the default, it's a huge win in cognitive-overhead. Maybe that feature isn't unique to Clojure but it's certainly not a prerequisite to being called a lips or a functional language.
Yes, indeed.
TBH, I developed in Erlang for 10 years and, as a result, developed a strong preference for "immutable data structures everywhere".
Unlike LISPs that I've seen (admittedly not that many), with Erlang there simply is no global data so no vars to change - it's all done via function parameters and tail recursion (Erlang has TCO baked in, btw).
Yes, indeed.
TBH, I developed in Erlang for 10 years and, as a result, developed a strong preference for "immutable data structures everywhere".
Unlike LISPs that I've seen (admittedly not that many), with Erlang there simply is no global data so no vars to change - it's all done via function parameters and tail recursion (Erlang has TCO baked in, btw).