
FRP.Reactive.Behavior  Stability  experimental  Maintainer  conal@conal.net 



Description 
Reactive behaviors (continuous time)


Synopsis 



Documentation 


Reactive behaviors. They can be understood in terms of a simple
model (denotational semantics) as functions of time, namely at ::
BehaviorG t a > (t > a).
The semantics of BehaviorG instances are given by corresponding
instances for the semantic model (functions). See
http://conal.net/blog/posts/simplifyingsemanticswithtypeclassmorphisms/.
 Functor: at (fmap f r) == fmap f (at r), i.e., fmap f r at
t == f (r at t).
 Applicative: at (pure a) == pure a, and at (s <*> r) == at s
<*> at t. That is, pure a at t == a, and (s <*> r) at t
== (s at t) (r at t).
 Monad: at (return a) == return a, and at (join rr) == join (at
. at rr). That is, return a at t == a, and join rr at t ==
(rr at t) at t. As always, (r >>= f) == join (fmap f r).
at (r >>= f) == at r >>= at . f.
 Monoid: a typical lifted monoid. If o is a monoid, then
Reactive o is a monoid, with mempty == pure mempty, and mappend
== liftA2 mappend. That is, mempty at t == mempty, and (r
mappend s) at t == (r at t) mappend (s at t).
 Instances  



Timespecialized behaviors.
Note: The signatures of all of the behavior functions can be generalized. Is
the interface generality worth the complexity?





The identity generalized behavior. Has value t at time t.



Discretely changing behavior, based on an initial value and a
newvalue event.



Switch between behaviors.



Snapshots a behavior whenever an event occurs and combines the values
using the combining function passed.



Snapshot a behavior whenever an event occurs. See also snapshotWith.



Like snapshot but discarding event data (often a is '()').



Filter an event according to whether a reactive boolean is true.



Behavior from an initial value and an updater event. See also
accumE.



Like scanl for behaviors. See also scanlE.



Accumulate values from a monoidvalued event. Specialization of
scanlB, using mappend and mempty. See also monoidE.



Start out blank (Nothing), latching onto each new a, and blanking
on each b. If you just want to latch and not blank, then use
mempty for the second event.



Flipflopping behavior. Turns true whenever first event occurs and
false whenever the second event occurs.



Count occurrences of an event. See also countE.



Like sum for behaviors.



Euler integral.


Produced by Haddock version 2.3.0 