質問

次の通過に問題があります Haskellを学びます (偉大な本のimo、それを解放しない):

大きな違いの1つは、右折り目が無限のリストで動作するのに対し、左のリストでは機能しないことです!明白に言うと、ある時点で無限のリストを取得し、右から折りたたむと、最終的にリストの先頭に到達します。ただし、ポイントで無限のリストを取得し、左からそれを折りたたむと、終わりに到達することはありません!

私はこれを手に入れません。 Infiniteリストを取得して右から折りたたむと、Infinityのポイントから開始する必要があります。 )。少なくとも、Haskell foldrとFoldlでは、リストのどこに折りたたみを開始するかを決定する議論をしないため、Haskellの実装に従ってそこから始めなければなりません。

foldrとfoldlがリストのどこで折りたたみを開始するかを決定する引用に同意します。これは、無限のリストを取得して定義されたインデックスから折り畳みを開始すると理にかなっているからです。 意思 最終的に終了しますが、左折からどこから始めても関係ありません。あなたは無限に向かって折りたたむでしょう。ただし、foldrとfoldl しない この議論をしてください。したがって、引用は意味がありません。 Haskellでは、左折と右折り目の両方が無限のリストの上にあります 終了しません.

私の理解は正しいですか、それとも何かが足りませんか?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top