LINUX.ORG.RU

История изменений

Исправление 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)) ... переменные, и когда мы меняем что-то, и хотим получить значение, перевычисляетсятся только кусок графа, который зависит от части, в котором была изменена переменная, по зависимостям.