|
| 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
scanlE, 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 |