On Thu, Aug 06, 2009 at 03:33:40PM +0100, Malcolm Wallace wrote:
> >What semantics would you like Haskell to have, in which (x `seq` y
> >`seq` e) and (y `seq` x `seq` e) are not equal?
> 
> I can easily imagine that (x `seq` y `seq` e) might have *two*
> semantic denotations:  bottom (Exception: stack overflow), and e.
> And I would like to be able to choose which one I get (please).
> This is the declared purpose of seq, namely "to improve performance
> by avoiding unneeded laziness".

There is no stack overflow in the denotational semantics.  Either you
would get an answer with a bigger stack (and that's the denotation),
or you wouldn't (in which case the value is bottom).  As Simon said,
the denotational semantics of seq is very limited for specifying
performance.
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime

Reply via email to