|
|
|
|
|
by kgwxd
2380 days ago
|
|
I think the ideas spelled out in rationale are really what sets Clojure apart from all the other lisps. For decades, I got excited every time a new idea around lisp or functional programming and I'd play with them for weeks. Eventually, I'd get to the big question, how do I bring this idea into development environment that solves the hundreds of other ugly real-world problems I have to deal with to make a usable application? Clojure solves that by being hosted. 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. Singly-linked lists are cool, but almost every other type of list is cooler, being able to read, eval and print those as well is really cool. |
|
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).