[reactive] FRP, continuous time and concurrency
Álvaro García Pérez
agarcia at babel.ls.fi.upm.es
Wed Jun 10 13:39:41 EDT 2009
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?
2009/6/10 Freddie Manners <f.manners at 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.
> 2009/6/10 Patai Gergely <patai_gergely at 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.
>> http://www.fastmail.fm - One of many happy users:
>> Reactive mailing list
>> Reactive at haskell.org
> Reactive mailing list
> Reactive at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Reactive