[Haskell-cafe] wanted: Function to break circular data dependencies
lambda.fairy at gmail.com
Tue May 6 23:08:46 UTC 2014
On Tue, May 6, 2014 at 11:48 PM, Corentin Dupont
<corentin.dupont at gmail.com> wrote:
> Great, I didn't know unamb! Specially the function "race" included:
> race :: IO a -> IO a -> IO a
> Race two actions against each other in separate threads, and pick whichever
> finishes first. See also amb.
> Could it be used to build a watchdog? Simply by providing one of the two
> arguments as an action that waits and then gives a default value.
If you simply want a timeout, then I'd suggest System.Timeout instead
> On Tue, May 6, 2014 at 12:24 PM, Erik Hesselink <hesselink at gmail.com> wrote:
>> On Tue, May 6, 2014 at 11:38 AM, Chris Warburton
>> <chriswarbo at googlemail.com> wrote:
>> > Job Vranish <job.vranish at gmail.com> writes:
>> >> I've often found myself wanting a function like this. It would make
>> >> certain
>> >> kinds of knot-tying/cycle detection _much_ easier.
>> >> Is there any reason why this function can't/shouldn't exist?
>> > This makes me think of the more widely-known 'parallel OR' operator,
>> > which evaluates its arguments in parallel and returns whichever finishes
>> > evaluating first.
>> > This operator cannot be implemented in Lambda Calculus, but it can in
>> > Haskell (via threads). Unfortunately Googling for 'haskell "parallel
>> > or"' brings up sentence fragments ('...parallel or concurrent...')
>> > rather than a parallel or implementation.
>> Perhaps you are looking for 'unamb' ?
>>  http://hackage.haskell.org/package/unamb
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
More information about the Haskell-Cafe