[Haskell-cafe] wanted: Function to break circular data dependencies
alois.cochard at gmail.com
Tue May 6 12:13:28 UTC 2014
Just to say there is similar functionality in Marlow's async library:
Might overkill for your issue, but I thought it was worth mentioning it.
On 6 May 2014 12:48, Corentin Dupont <corentin.dupont at gmail.com> wrote:
> Great, I didn't know unamb! Specially the function "race" included:
> race :: IO<http://hackage.haskell.org/packages/archive/base/220.127.116.11/doc/html/System-IO.html#t:IO>a ->
> IO<http://hackage.haskell.org/packages/archive/base/18.104.22.168/doc/html/System-IO.html#t:IO>a ->
> Race two actions against each other in separate threads, and pick
> whichever finishes first. See also amb<http://hackage.haskell.org/package/unamb-0.2.5/docs/Data-Unamb.html#v: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.
> 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
>> >> 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
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe