LINUX.ORG.RU

История изменений

Исправление qnikst, (текущая версия) :

Большинство серьезных вещей потребует вставку элементов в конец, а это гарантированная перестройка списка.

большинство серьёзных вещей могут использовать аккумулятор или вставку в голову и revert, так же они могут использовать DList, очереди и прочие структуры данных более подходящие под задачу. При этом очень большой класс алгоритмов может быть записан в форме foo = e : foo, в этом случае из-за ленивости операция будет стоить O(1), кстати с Text/ByteString такое не провернёшь нахаляву.

И я никак не могу понять, почему эти мудаки представляют строки как списки - это же маразм.

Примерно для: pattern-matching без view patterns, для алгоритмов где шарятся хвосты, для алгоритмов где реально строка не создается, может ещё какие классы алгоритмов я упустил, плюс в Prelude type String=[Char] и лень шевелиться, а Text нету в поставке с ghc (хотя имхо это плюс). Вообще сейчас есть Text, который выигрывает почти по всем пунктам, и bytestring + vector bytestring, который нужен там, где он нужен. Бесит когда в баиндингах стринги используют где попало.

извините за сбитый текст, если что не понятно, могу сформулировать по русски.

Исходная версия qnikst, :

Большинство серьезных вещей потребует вставку элементов в конец, а это гарантированная перестройка списка.

большинство серьёзных вещей могут использовать аккумулятор или вставку в голову и revert, так же они могут использовать DList, очереди и прочие структуры данных более подходящие под задачу. При этом очень большой класс алгоритмов может быть записан в форме foo = e : foo, в этом случае из-за ленивости операция будет стоить O(1), кстати с Text/ByteString такое не провернёшь нахаляву.

И я никак не могу понять, почему эти мудаки представляют строки как списки - это же маразм.

Примерно для: pattern-matching без view patterns, для алгоритмов где шарятся хвосты, для алгоритмов где реально строка не создается, может ещё какие классы алгоритмов я упустил, плюс в Prelude type String=[Char] и лень шевелиться, а Text нету в поставке с ghc (хотя имхо это плюс). Вообще сейчас есть Text, который выигрывает почти по всем пунктам, и bytestring + vector bytestring, который нужен там, где он нужен. Бесит когда в баиндингах стринги используют где попало.