2016-03-02 28 views
2

是否存在具有可自動更新變量的存在編程語言。 例如:A = 105,對應的變量自動重新計算:具有可自動更新變量的語言

b: 316 
c: 104.3053 

如果這種語言存在,被用來實現這種行爲什麼方法

a = 100 
b = a * 3 + 1 // 301 
c = sin(b) + a // 99.1428 

修改 'A' 之後?

+1

Excel只是做到這一點。我假設他們在解析表達式時建立一個依賴關係圖。您可以檢查是否檢測到循環引用。 –

回答

2

你想要的是延期評估。這在電子表格應用程序中很常見。我認爲R語言也允許這樣的事情。

你幾乎可以用任何語言實現它。

通常的方法是定義一個終止符類(比如Number)並覆蓋運算符(如果語言支持它,如C++,C#或python)以返回樹中的節點。所以a * 3 + 1將相當於類似於(b = Sum(Mult(a,Number(3)),Number(1))的東西。一旦你有了這樣的事情,你可以用一個存取器來改變a的值,然後請求重新評估頂層節點,這會給你所需要的值。

這裏可能有一些實現已經存在,實現起來並不困難,但是定義所有的類和如果你想優化評估,它會變得更加複雜