[Haskell-cafe] nondet function
lennart at augustsson.net
Sun Sep 10 08:42:56 EDT 2006
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.
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.
> 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 at haskell.org
More information about the Haskell-Cafe