|
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/simplifying-semantics-with-type-class-morphisms/.
- 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 | |
|
|
|
Time-specialized 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
new-value 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 '()').
|
|
|
Behavior from an initial value and an updater event. See also
accumE.
|
|
|
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.
|
|
|
Euler integral.
|
|
Produced by Haddock version 2.3.0 |