A simple example:
hour = 12; //noon darkOutside = hour > 20 || hour < 8 ? true : false; //false hour = 0; //night //automatically sets darkOutside = true
In a nutshell: changes of variables update the values of other variables that depend on them. This idea can be extended to any depth of dependency and even to function calls and objects. See the Documentation for an introduction into these concepts.
I believe applications should be written in the cleanest way possible. One way to achieve this lies in minimizing the need for any kind of bookkeeping to let some parts of the application know that another part changed its state. Reactive programming provides mechanisms to hide these bookkeeping processes by automatically delivering updates throughout an entire program. Therefore, it perfectly fits to our event driven browsers, which give the possibility to continuously change a website's state.
Examples illustrating these problems will be online in a few weeks.