[Haskell-cafe] Number of widgets extant and displayed varying over time? (FRP, reactive-banana)

Heinrich Apfelmus 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.

Best regards,
Heinrich Apfelmus


More information about the Haskell-Cafe mailing list