On 2004-10-12 at 18:07+0200 Christian Hofer wrote:
> Hi,
> 
> having found a bit of time to play with Haskell, I am trying to figure 
> out how to enforce strict evaluation.
> I wrote the following program:
> 
> main =
>       let x = zipWith (+) [5..] [6..]
>       in putStrLn $ show $ x `seq` head x
> 
> I expected this program not to terminate - because of the seq-Operator, 
> but it happily returns 11 in ghc as well as in ghci. What do I make 
> wrong?

head is strict in its first argument, so x `seq` head x is
equivalent to head x.  seq only evaluates to (w?)hnf. To do
more you would need deepSeq.

-- 
Jón Fairbairn                                 [EMAIL PROTECTED]


_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to