3 ms·
Clarifying Clojure had them in 2007. Scala implementations were inspired by Clojure’s. Both Odersky and Bagwell have given credit to Hickey.
by swannodette 6mo ago
Clarifying Clojure had them in 2007. Scala implementations were inspired by Clojure’s. Both Odersky and Bagwell have given credit to Hickey.
- bjoli 6mo agoAnd Hickey himself said he adapted ideas from Bagwell's HAMTs. And tries are 60 years old. I have always thought Hickeys main contribution was making it default in a coherent way, and proved it could be done. Before clojure most peoplle still thought immutable data structures were too I practical.
- panick21_ 6mo agoI think the Clojure version does have some actual improvements over the Bagwell version, and some implementation tricks improvements as well. But I don't remember all the details.
- bjoli 6mo agoWell, sure. But it is not like Hickey invented the 5bit partitioned trie (there is work in sml and Haskell before that), nor did he invent functional tries. He took what was a research topic and made it standard. There were no other 5bit partitioned tries in (wide) use. I think he did that in a way that signals a fantastic sense of taste, and if you are implementing a programming language you need taste.
- swannodette 6mo agoThat's a big contribution, also the original HAMTs are not a functional data structure. See Section 3.4.1 in https://docdrop.org/download_annotation_doc/3386321-trk2f.pdf https://docdrop.org/download_annotation_doc/3386321-trk2f.pd...
- bjoli 6mo agoNo, but persistent bit partitioned tries were pretty well known in the late 90s (I first met them in standard ML in 2005)