<div style='font-family:Arial; font-size:13px;'>Hi,<div><br></div><div>I guess it's time to get acquainted with foldr and foldl.</div><div><br></div><div><b>prelude>xs = [1..5] ++ undefined</b></div><div><b>prelude> foldr const 0 xs</b></div><div><b>1</b></div><div><br></div><div>I assume it goes something like this:</div><div><br></div><div>( 1 `const`(2 `const`(3 `const`(4 `const`(5 `const`(undefined `const` 0))))))</div><div><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>  ( 5 </span>`const` undefined)</div><div><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>   (4 </span>`const` 5)    </div><div><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    (3 </span>`const` 4)</div><div><span>    </span><span>    </span><span>    </span><span>    ( 2 </span>`const` 3)</div><div>(1 `const`2)</div><div>= 1</div><div><br><div><div style="font-family:Arial; font-size:13px;">========================================================================</div></div></div><div style="font-family:Arial; font-size:13px;"><br></div><div style="font-family:Arial; font-size:13px;"><br></div><div style="font-family:Arial; font-size:13px;">What i don't get is the opposite:</div><div style="font-family:Arial; font-size:13px;"><br></div><div style="font-family:Arial; font-size:13px;"><b>prelude> foldl const 0 xs</b></div><div style="font-family:Arial; font-size:13px;"><b>error</b></div><div style="font-family:Arial; font-size:13px;"><br></div><div style="font-family:Arial; font-size:13px;"><br></div><div style="font-family:Arial; font-size:13px;">in my mind this should go like this: </div><div style="font-family:Arial; font-size:13px;">((((((0`const`1)`const` 2) `const` 3 )`const` 4)`const`  5) `const` undefined)</div><div style="font-family:Arial; font-size:13px;"><span>    </span><span>    <span>    </span><span>    </span><span>    (0 </span></span>`const`2)</div><div style="font-family:Arial; font-size:13px;"><span>    </span><span>    </span><span>    </span><span>    </span><span>                      (0</span>`const` 3)            </div><div style="font-family:Arial; font-size:13px;"><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>  ( 0</span>`const`4)</div><div style="font-family:Arial; font-size:13px;"><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span><span>   (0</span>`const` 5)</div><div style="font-family:Arial; font-size:13px;">                                                                                      (0 `const` undefined )</div><div style="font-family:Arial; font-size:13px;">= 0</div><div style="font-family:Arial; font-size:13px;"><br></div><div style="font-family:Arial; font-size:13px;"><br></div><div style="font-family:Arial; font-size:13px;"><br></div><div style="font-family:Arial; font-size:13px;">I have been told that the main difference between foldl and foldr is that foldl needs to evaluate the whole spline before it continues. And i guess that has something to do with it. What I don't understand is WHY foldl need to do this and foldr doesn't.</div><div style="font-family:Arial; font-size:13px;"><br></div><div style="font-family:Arial; font-size:13px;"><br></div><div style="font-family:Arial; font-size:13px;">thanks in advance!</div><div style="font-family:Arial; font-size:13px;"><br></div><div style="font-family:Arial; font-size:13px;">best,</div></div>