2013-06-29 2 views
3

Почему у Haskell есть Data.Sequence? Не являются ли (ленивые) списки уже наиболее распространенными итераторами вперед (в силу наличия свободных моноидов)?Почему у Haskell есть Data.Sequence?

+8

Они более эффективны для многих операций, таких как конкатенация, особенно справа. – AndrewC

+12

Еще одна операция, заслуживающая упоминания, - ['index'] (http://hackage.haskell.org/packages/archive/containers/0.5.2.1/doc/html/Data-Sequence.html#v:index), которая получает 'i'-й элемент в _O (log (min (i, ni))) _ время. Для списков сложность - _O (i) _. –

ответ

14

Детали указаны в первом абзаце на hackage. Как указано в @AndrewC, они предлагают множество операций, эффективно объединяющих две последовательности, просмотр правого конца последовательности или добавление элементов в конце последовательности.

Смежные вопросы