Clojure on Fennel Part One: Persistent Data Structures
99 points by roxolotl 4 days ago | 7 comments

xeubie 4 hours ago
Clojure's immutable HAMTs are still a superpower nearly 20 years later. They've been copied in pretty much every language as a library (I did so myself in Zig) but what really makes it work well in Clojure is the fact that they're built into the language, so the entire ecosystem is built around them. Libraries that were made independently usually fit together like a glove because they are all just maps/vectors in -> maps/vectors out.
reply
dapperdrake 3 hours ago
I thought it cheesy at the time. Then I tried clojure.

"The value of values". Indeed. Q.e.d. No notes.

reply
nesarkvechnep 53 minutes ago
Lisp programmers know the value of everything and the cost of nothing.
reply
andersmurphy 25 minutes ago
Apart from Andy Gavin [1]. He knows both the cost and the value of everything.

[1] https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp

reply
packetlost 2 hours ago
Yeah. I do wish there was something that was like Clojure with a TypeScript or Go-like nominal typing, but I do feel myself missing types a lot less with Clojure compared to other languages.
reply
iLemming 3 hours ago
Yeah, they are so underappreciated - the practical differences in designing, delivering and maintaining software are real. Initially you see small differences "What's the point? I can write that in Python too... maybe it's not as delightful, but who cares?...", etc. Yet over time small annoyances accumulate and become an endless stream of headaches. I see it over and over again - I work on a team where we have codebases in different languages, and some services written in Clojure. Immutability by default is a game of a different league.
reply
slowmovintarget 16 minutes ago
HAMT -> Hashed Array Mapped Trie for those wondering.

https://en.wikipedia.org/wiki/Hash_array_mapped_trie

(The acronym is expanded in the article, but a ways down.)

reply
devnotes77 2 hours ago
[dead]
reply