I have released version 0.4.0.0 of my reactive-banana library on hackage.
Once again, I’ve improved the interaction with existing event-based frameworks. Namely, I’ve added a function
fromPoll :: IO a -> NetworkDescription (Behavior a)
that creates a behavior from mutable data by polling. For instance, you can now obtain the text contents of an edit widget as a behavior. I’m actually embarrassed that I forgot to include this function right from the start. :-)
While the core FRP model and semantics remain unchanged, I have also added a new data type Discrete
, which denotes discrete time-varying values. It’s very similar to Behavior
, except that it also provides an event changes
that records when the value changes. This can be very useful when you want explicit control over updates, but the drawback is, of course, that you have to deal with yet another data type. See the documentation for more on the rationale.
Many thanks to the user Masse for highlighting these issues by asking questions on stackoverflow and to Conal Elliott for discussing the new Discrete
data type with me.
Other changes include:
run
is now called actuate
interpretAsHandler
is a quick & easy way to write single event handlers in FRP style.