2014-07-01 22 views

回答

3

正如你所說的問題,沒有,因爲在作業後,ab + c(僅限於分配的數值)沒有任何關聯。

但是,您可以重新解釋問題,以便您可以恢復作業的右側。例如:

kill (a, b, c); /* remove any existing values */ 
b : 2; 
c : 3; 
a : '(b + c); 
    => c + b 
''a; 
    => 5 
a; 
    => c + b 

kill (a, b, c); 
a : b + c; 
    => c + b 
b : 2; 
c : 3; 
''a; 
    => 5 
a; 
    => c + b 

在兩種情況下,b + c不是由數值時,它被分配給a,無論是通過防止評估(第一實施例)或通過bc給出數值之前分配取代。最後,這裏是避免了分配數字值bc另一種方法:

kill (a, b, c); 
a : b + c; 
    => c + b 
subst ([b = 2, c = 3], a); 
    => 5 
a; 
    => c + b 

我想,這最後一種方法,它使用subst,是最好的,因爲其他方法使用引號引用操作''這也太有點微妙,因此有一個可能令人驚訝的效果。

+0

晶瑩剔透的答案一如既往羅伯特,謝謝! – mmj