Hacker News new | ask | show | jobs
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.

1 comments

> 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).