Прочитал про сабж и вот этот пример:
К примеру, в императивном программировании присваивание a := b + c будет означать, что переменной a будет присвоен результат выполнения операции b + c, используя текущие (на момент вычисления) значения переменных. Позже значения переменных b и c могут быть изменены без какого-либо влияния на значение переменной a. В реактивном же программировании значение a будет автоматически пересчитано, основываясь на новых значениях.
натолкнул на мысль. А ведь это подмена понятий. Тут a - это же просто фунция! Что-то вроде
b=1
c=1
a=function(){return b+c}
a() -->2
b=2
a() -->3
Даже вот так наглядней будет, чтобы не отвлекаться на присваивания:
b=function(){return 1}
c=function(){return 1}
a=function(){return b()+c()}
a() -->2
b=function(){return 2}
a() -->3
[/update]
ведь это же обычное императивное программирование. Дело в синтаксисе? То что мы обращаемся к a не a(), а просто: a? Это важно, дооо.
Тем более странно, что там снизу, на вики, они плетут еще что-то пр фп-реактивное программирование. Да современное фп, со своей анальной фиксацией на замыканиях и иммутабельности, это 100% АНТИреактивное программирование. Они наоборот замораживают состояние, какая там реактивность может быть? Что это за идиотизм такой? Как разобраться в этих дебрях, когда кругом идиотизм зашкаливает:)?
PS Да, и кстати, эта парадигма нам как-бы, в очередной раз, намекает, что никакой разницы между функциями и данными нет, BTW.