I don't completely understand how can you wrap your reactive definition into a particular implementation.

Let's take the IO legacy adapter for example, how could I use the applicative lifting (liftA2) with behaviours to implement things inside the IO monad? Can you give some code adapting the "a = liftA2 (+) b c" example to the console? Are threads and concurrency required to do so?

Alvaro.

2009/6/10 Freddie Manners <f.manners@gmail.com>
So, it may be that we've made Num a => Behavior a an instance of Num in which case this is valid code; I think the definition

a = liftA2 (+) b c

is more instructive.  The point is that Behavior is an instance of Applicative, so we can apply a time-varying function (such as (+) b) to a time-varying argument (such as c) so that the answer is modified when either the function or the argument is.

Freddie

2009/6/10 Patai Gergely <patai_gergely@fastmail.fm>

> Anyway, can you give any implementation of this example using the
> reactive library?
If b and c are signals (or behaviours as they are called in Reactive)
carrying Num values of the same type, you can simply say a = b + c, and
you're done. Signal a will be updated only when either b or c is
updated. Note that this must be understood in the context of laziness,
i.e. not a single sum is calculated until a sample of a is requested.

Gergely

--
http://www.fastmail.fm - One of many happy users:
 http://www.fastmail.fm/docs/quotes.html

_______________________________________________
Reactive mailing list
Reactive@haskell.org
http://www.haskell.org/mailman/listinfo/reactive


_______________________________________________
Reactive mailing list
Reactive@haskell.org
http://www.haskell.org/mailman/listinfo/reactive