Что такое самобалансирующееся дерево самый простой в функциональном программировании?

Я проектирую самобалансирующееся дерево на Haskell. В качестве упражнения и потому, что это приятно держать в руке.

Раньше в C и Python я предпочитал Treaps и Splay Trees из-за их простых правил балансировки. Я всегда не любил R / B Trees, поскольку они казались больше работой, чем они того стоили.

Теперь, из-за функциональной природы Haskell, кажется, что все изменилось. Я могу написать функцию вставки R / B в 10 строк кода. Treaps, с другой стороны, требует обертывания для хранения генератора случайных чисел, а Splay Trees сложно выполнять сверху вниз.

Я спрашиваю, есть ли у вас опыт работы с другими типами деревьев? Какие из них лучше используют сопоставление с образцом и нисходящий характер функциональных языков?

18
задан Robert Harvey 13 November 2010 в 19:39
поделиться