|Improving flexibility of signals: Dynamic collections and dynamic switching||Evan||10/7/12 8:45 PM|
I have attached a program that allows you to create and delete squares dynamically. These squares can then be dragged around. This is the kind of signal-of-signals behavior that previously was quite difficult in Elm (and is still difficult in most other modern/maintained FRP frameworks). (Note: the html file is big because it includes the full uncompressed RTS.)
Thanks to the ideas and input of Joey Adams, the next version of Elm is likely to include Automatons, making it easier to create more dynamic programs. Automatons are state machines that take an input and produce an output. That output can even be another Automaton. This simple abstraction can model tons of cool behavior (such as draggable forms). The basics are outlined here, and I'll give a better explanation once the API settles down more.
If you are interested in playing around with Automatons, I believe you can build from source and they will be functional (re-building also gives you (>>>) and (<<<) infix functions).
For the theory minded people here, Automatons are technically an instance of Arrow. If that sentence does not increase your understanding of Automatons, ignore it.