|Reactive behaviors (continuous time)
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
- 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).
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
|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 '()').
|Behavior from an initial value and an updater event. See also
|Like scanl for behaviors. See also scanlE.
|Accumulate values from a monoid-valued 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.
|Flip-flopping 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.
|Produced by Haddock version 2.3.0|