On 04 April 2006 19:53, Andy Adams-Moran wrote:
Andy Gill wrote:
let xs' () = 1 : 2 : xs' ()
let xs2 = xs'
let xs = 1 : 2 : xs
So deepSeq xs2 == _|_, but deepSeq xs == xs
Yes, and hence deepSeq isn't monotonic. That's bad.
I appeal to the morally correct reasoning argument .. If
On Tue, 04 Apr 2006, Andy Gill [EMAIL PROTECTED] wrote:
let xs' () = 1 : 2 : xs' ()
let xs2 = xs'
let xs = 1 : 2 : xs
So deepSeq xs2 == _|_, but deepSeq xs == xs
I appeal to the morally correct reasoning argument .. If the program
terminates, then it is still correct.
To avoid
On Tue, Apr 04, 2006 at 01:33:39PM +0100, Simon Marlow wrote:
I'm not sure whether asynchronous exceptions should be in Haskell'. I
don't feel entirely comfortable about the interruptible operations
facet of the design, and I'm hoping that STM can clean things up: after
all, STM already gives
Simon Marlow [EMAIL PROTECTED] writes:
I think it would be a mistake to relegate concurrency to an addendum;
it is a central feature of the language, and in fact is one area where
Haskell (strictly speaking GHC) is really beginning to demonstrate
significant advantages over other languages.
On 05 April 2006 12:47, David Roundy wrote:
On Tue, Apr 04, 2006 at 01:33:39PM +0100, Simon Marlow wrote:
The fact that throwTo can interrupt a takeMVar, but can't interrupt a
foreign call, even a concurrent one, is a bit strange. We have this
odd situation in GHC right now where throwTo can
On 05 April 2006 13:38, John Meacham wrote:
On Wed, Apr 05, 2006 at 07:47:08AM -0400, David Roundy wrote:
For me, asynchronous exceptions are the primary reason to use
concurrent Haskell. They're the only way I'm aware of to write a
program that handles signals in Haskell, and it's be a real
| let xs' () = 1 : 2 : xs' ()
| let xs2 = xs'
|
| let xs = 1 : 2 : xs
|
| So deepSeq xs2 == _|_, but deepSeq xs == xs
No, no. deepSeq of either should be _|_.
That's easy to achieve, even with the marking idea. Simply do a
depth-first walk, but mark the node *after* traversing all its
Simon Marlow [EMAIL PROTECTED] writes:
I'm not sure whether asynchronous exceptions should be in Haskell'.
I don't feel entirely comfortable about the interruptible operations
facet of the design,
I designed that differently for my language. There is a distinct
synchronous mode where
Andy Gill wrote:
- [various reasons for deepSeq]
You left out the one that most interests me: ensuring that there are no
exceptions hiding inside a data structure.
deepSeq :: a - b - b
This ties demand for the (fully evaluated) normal form of an expression to
demand for the WHNF of a
On Wed, Apr 05, 2006 at 10:34:09AM -0500, Spencer Janssen wrote:
How about an implementation that sets the deepSeq'd bit *after* each
field has been successfully deepSeq'd? deepSeq'ing a cyclic structure
would behave just like an infinite structure.
what would be the point of having a bit
10 matches
Mail list logo