
As others have pointed out, there are many allowed evaluation orders of this
expressions.
But not only that, how it gets evaluated depends on how you are going to use
it. Say that you print it, then you need all 4 elements, but say that it's
oly going to be used as an argument to null, then you will evaluate less
(probably).
Even so, it's instructive to study how the normal order reduction of this
expression would proceed under the assumption that all 4 elements will be
used.
-- Lennart
On Fri, May 9, 2008 at 6:52 PM, PR Stanley
Hi (take 4 . map (>0)) (f s t) where s = 2 : t t = 3 : s f = zipWith (-) What would be the order of evaluation for the above code? How would I illustrate the evaluation step-by-step? I'm guessing that the code necessitates lazy evaluation and as such it starts with take then it applies f which in turn applies s and t and zipWith until the first element satisfies the predicate in map and This is repeated 4 times What does the list think? Many thanks, Paul P.S. I'm not done with induction. I'm just letting it rst for a bit.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe