Я заметил, что потокиво многом похожи на списки, за исключением добавления с постоянным временем. Конечно, добавление постоянного времени к спискам не так уж сложно, и DListделает именно это.
В оставшейся части обсуждения давайте предположим, что либо списки имеют добавление с постоянным временем, либо нас это просто не интересует.
Я считаю, что списки Haskell должны быть просто реализованы как потоки. Чтобы этого не произошло, я предполагаю, что должно выполняться следующее:
Мой вопрос: каковы примеры двух вышеупомянутых случаев?
Примечание. Для целей этого вопроса, пожалуйста, игнорируйте легко исправимые упущения в конкретных реализациях, которые я обсуждал. Я ищу здесь больше основных структурных различий.
Дополнительная информация:
Я предполагаю, что часть того, к чему я здесь клоню, скажем, если мы напишем [1..1000000]
, сделает ли компилятор Haskell (скажем, GHC):
Если это случай (1), зачем это делать, поскольку создание промежуточных списков кажется ненужным снижением производительности?
Или, если это случай (2), то зачем нужны потоки?