<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Dec 13, 2015 at 4:02 PM, Imants Cekusins <span dir="ltr"><<a href="mailto:imantc@gmail.com" target="_blank">imantc@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><p dir="ltr">> The foldl builds up a very long expression and evaluates it after the last element of the list is reached (the evaluation is non-strict, or lazy). If you use foldl' (from Data.List) instead, the calculation is done per element (the evaluation is strict).<br></p>
</span><p dir="ltr">Is it possible to write a wrapping function (if it does not already exist) which would analyze inputs and apply appropriate fold (foldl, foldl', foldr, foldr') or safeguard (return Left warning) against following the 10Gb ram route - if this can be avoided?</p></blockquote><div>I know next to nothing about Haskell, but I suspect this would require knowing whether a list is finite or infinite, which may be equivalent to "the halting problem" - IOW, not possible in general in a finite amount of time. <br></div></div><div><br></div>-- <br><div class="gmail_signature">Dan Stromberg</div>
</div></div>