История изменений
Исправление SZT, (текущая версия) :
Очень даже причем. Если взять мой пример (sin((a+b+c+d)*(e+f+g)))^((a+b+c+d)+(h+i+j))
и подставить в него числа (sin((1+2+3+4)*(5+6+7)))^((1+2+3+4)+(8+9+10))
выглядеть в псевдокоде это будет так
> {a,b,c,d,e,f,g,h,i,j} = {1,2,3,4,5,6,7,8,9,10}
> res = (sin((a+b+c+d)*(e+f+g)))^((a+b+c+d)+(h+i+j))
> print(res)
< %%результат_вычисления (sin((1+2+3+4)*(5+6+7)))^((1+2+3+4)+(8+9+10))%%
> a = 999
> print(res)
< %%результат_вычисления (sin((999+2+3+4)*(5+6+7)))^((1+2+3+4)+(8+9+10))%%
Чтобы сделать реактивное программирование, надо просто заассоциировать переменную с некоей цепочкой вычислений, хранить промежуточные вычисления для подставленных в формулы (a+b+c+d)
(e+f+g)
((a+b+c+d)*(e+f+g))
... переменных, и когда мы меняем что-то из переменных, которые входят в цепочку вычислений и хотим получить значение, перевычисляетсятся только кусок графа, который зависит от части, в котором была изменена переменная, по зависимостям.
Исходная версия SZT, :
Очень даже причем. Если взять мой пример (sin((a+b+c+d)*(e+f+g)))^((a+b+c+d)+(h+i+j))
и подставить в него числа (sin((1+2+3+4)*(5+6+7)))^((1+2+3+4)+(8+9+10))
выглядеть в псевдокоде это будет так
> {a,b,c,d,e,f,g,h,i,j} = {1,2,3,4,5,6,7,8,9,10}
> res = (sin((a+b+c+d)*(e+f+g)))^((a+b+c+d)+(h+i+j))
> print(res)
< %%результат_вычисления (sin((1+2+3+4)*(5+6+7)))^((1+2+3+4)+(8+9+10))%%
> a = 999
> print(res)
< %%результат_вычисления (sin((999+2+3+4)*(5+6+7)))^((1+2+3+4)+(8+9+10))%%
Чтобы сделать реактивное программирование, надо просто заассоциировать переменную с некоей цепочкой вычислений, хранить промежуточные вычисления для подставленных в формулы (a+b+c+d)
(e+f+g)
((a+b+c+d)*(e+f+g))
... переменные, и когда мы меняем что-то, и хотим получить значение, перевычисляетсятся только кусок графа, который зависит от части, в котором была изменена переменная, по зависимостям.