Левое и правое складное в течение бесконечного списка

У меня есть проблемы со следующим отрывком из Узнайте вас Haskell (Великая книга ИМО, не преобразовав его):

Одно большое значение - это то, что правильно Складки работают на бесконечных списках, тогда как левые не делают! Поставить его прямо, если вы возьмете бесконечный список в какой-то момент, и вы сложите его Справа, вы в конечном итоге достигаете начала списка. Тем не менее, если вы возьмете бесконечный список в точке, и вы пытаетесь сложить Это слева, вы никогда не достигнете конца!

Я просто не понимаю этого. Если вы возьмете бесконечный список и попробуйте сбросить его справа, то вам придется начать в точке в Infinity, что просто не происходит (если кто-то знает язык, где вы можете сделать это, скажите: P ). По крайней мере, вам придется начать там в соответствии с реализацией HASKELL, потому что в Haskell Foldr и Foldl не берут аргумент, который определяет, где в списке они должны начать складываться.

Я бы согласился с цитатой IFF Foldr и Foldl взял аргументы, которые определились, где в списке они должны начать складываться, потому что имеет смысл, что если вы возьмете бесконечный список и начните складываться справа от определенного индекса в конечном итоге завершается, тогда как не имеет значения, где вы начинаете с левой стороны; Вы будете складываться к бесконечности. Однако Foldr и Foldl не Возьмите этот аргумент, и, следовательно, цитата не имеет смысла. В Haskell как левая складка и правая складка по бесконечному списку не будет расторгнуть .

Является ли мое понимание правильно или я что-то упускаю?

70
задан HaskellElephant 25 December 2011 в 22:00
поделиться