[Haskell-cafe] Number of widgets extant and displayed varying over time? (FRP, reactive-banana)
apfelmus at quantentunnel.de
Wed Jan 14 07:04:37 UTC 2015
Jeffrey Brown wrote:
> Dear list,
> I want to write an application in which the set of widgets in existence,
> and the subset of them that is displayed, depends on user input. I am using
> reactive-banana. So far the simplest spec I have imagined for it is this:
> Initially there is just a text entry box and an empty (hence invisible)
> collection of labels.
> The user can do two things: enter the word "add", or enter an integer.
> Entering the word "add" causes a label to be added to the collection,
> but not displayed. The labels require no text content.
> Entering an integer N causes the first N labels to be displayed
> onscreen. The text entry box remains visible.
> I am totally baffled. In particular, the Behavior paradigm, though it is
> elegant and beautiful whenever I study it, I have no idea how to apply.
This looks like you need "dynamic event switching", i.e. the module
`Reactive.Banana.Switch`. It's very cool, but may be more difficult to
understand than the standard combinators, mainly because of the
additional type parameters.
To see how it works, have a look at the `BarTab.hs` example. It
implements a program that is very similar to what you describe here.
More information about the Haskell-Cafe