4 ms·
Red-Black Trees in a Functional Setting (Okasaki, 1993)
- fadmmatt 17y agoIn case anyone needs them, I wrote up Okasaki red-black trees for Scala: http://matt.might.net/articles/implementation-of-immutable-purely-functional-okasaki-red-black-tree-maps-in-scala/ http://matt.might.net/articles/implementation-of-immutable-p...
- kapuzineralex 17y agoWell, thanks, I was just about to take Okasaki's paper and see what an implementation in Scala would look like.
- leif 17y agoThis is probably the best explanation of Red-Black trees, even outside of a functional setting. There is an implementation that is pretty faithful to Okasaki's paper here: http://www.cs.kent.ac.uk/people/staff/smk/redblack/Untyped.hs http://www.cs.kent.ac.uk/people/staff/smk/redblack/Untyped.h... . I used as a reference once because it also implements delete. In the same directory, Kahrs develops other versions with stronger constraints coming from the type system, but I never got far enough in to Haskell back then to understand them.
- kapuzineralex 17y agoI find it particularly interesting that he breaks down the number of neccessary cases to only 4 compared to the standard explanation found everywhere else.
- eru 17y agoYes, that's the power of purity. On the syntax side, or-patterns express those remaining four cases very succinctly.
- Xichekolas 17y agoIf you haven't read Okasaki's dissertation: http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf I'd highly recommend it. It's hard to find a dissertation that reads like a novel, but he somehow managed to accomplish such a feat.
- alexkay 17y agoIt's hard to find a dissertation that reads like a novel That's why he turned it into a book: http://www.amazon.com/Purely-Functional-Structures-Chris-Okasaki/dp/0521631246/ http://www.amazon.com/Purely-Functional-Structures-Chris-Oka...
- Xichekolas 17y agoGood point. Judging from the table of contents, he added a chapter up front on various types of trees, tacked on Haskell source in the appendix, and mushed all the conclusions together. But I'm a poor grad student, so I'll read the free dissertation over the $75 book. ;)
- rogermugs 17y agobst were the first time i went "holy crap. i love complex problem solving"
- thirdstation 17y agoI took his Programming Languages and Translators class when he was at Columbia. It was, hands-down, the best class I've ever taken. His enthusiasm for the subject was evident. The aspect about the class I liked best, and which I try to emulate, it that he rarely ever directly answered a question. He would, with incredible patience, ask you questions in-turn to help lead you to the solution or definition. I always found that impressive from a graduate-level professor. I think I still have his ML implementation of Red-Black trees he gave the class.