3
Почему у Haskell есть Data.Sequence? Не являются ли (ленивые) списки уже наиболее распространенными итераторами вперед (в силу наличия свободных моноидов)?Почему у Haskell есть Data.Sequence?
Почему у Haskell есть Data.Sequence? Не являются ли (ленивые) списки уже наиболее распространенными итераторами вперед (в силу наличия свободных моноидов)?Почему у Haskell есть Data.Sequence?
Детали указаны в первом абзаце на hackage. Как указано в @AndrewC, они предлагают множество операций, эффективно объединяющих две последовательности, просмотр правого конца последовательности или добавление элементов в конце последовательности.
Они более эффективны для многих операций, таких как конкатенация, особенно справа. – AndrewC
Еще одна операция, заслуживающая упоминания, - ['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) _. –