
Is it possible to write nondet? nondet :: a -> a -> a nondet _|_ _|_ = _|_ nondet _|_ q = q nondet p _|_ = p nondet p q = p or q nondet evaluates its arguments in parallel, and returns the first one of them to evaluate. It's thus a bit different from the "par" of GPH. This isn't referentially transparent, of course, but maybe it could be written in the IO monad: nondet p q = unsafePerformIO (getnondet p q) getnondet :: a -> a -> IO a -- Ashley Yakeley, Seattle WA

On 9/9/06, Ashley Yakeley
Is it possible to write nondet?
Yes; it (or something very similar) is discussed here: http://www.haskell.org/haskellwiki/Timing_out_computations Hope this helps! --Tom Phoenix

On 2006-09-10, Ashley Yakeley
Is it possible to write nondet?
nondet :: a -> a -> a
nondet _|_ _|_ = _|_ nondet _|_ q = q nondet p _|_ = p nondet p q = p or q
nondet evaluates its arguments in parallel, and returns the first one of them to evaluate. It's thus a bit different from the "par" of GPH. This isn't referentially transparent, of course, but maybe it could be written in the IO monad:
nondet p q = unsafePerformIO (getnondet p q)
getnondet :: a -> a -> IO a
Can you pass p and q to two new threads, have them each force their argument, and then write it to the same channel? Then read from that channel once in the original thread. -- Aaron Denney -><-

To make it referentially transparent you might want to consider adding 'por', parallel or, instead. It's like (||), but symmetric in its treatment of bottom. -- Lennart On Sep 10, 2006, at 00:21 , Ashley Yakeley wrote:
Is it possible to write nondet?
nondet :: a -> a -> a
nondet _|_ _|_ = _|_ nondet _|_ q = q nondet p _|_ = p nondet p q = p or q
nondet evaluates its arguments in parallel, and returns the first one of them to evaluate. It's thus a bit different from the "par" of GPH. This isn't referentially transparent, of course, but maybe it could be written in the IO monad:
nondet p q = unsafePerformIO (getnondet p q)
getnondet :: a -> a -> IO a
-- Ashley Yakeley, Seattle WA
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (4)
-
Aaron Denney
-
Ashley Yakeley
-
Lennart Augustsson
-
Tom Phoenix