Clojure feels like a 'compromise' Haskell, but I mean that in a good way. Haskell really wants to pretend that everything is a pure function. But I think this is a case where the conceptually simpler thing (i.e. no state) is just too hard to reason about. Clojure backs off the 'referential transparency ONLY' philosophy, and merely discourages mutability. In my (limited) experience, this gives almost all of the advant…
> this gives almost all of the advantages of Haskell
except one of the biggest ones - the type system. Obviously this is subjective though. Some people prefer dynamic typing :)