-1

我剛剛開始使用Erlang。我正在嘗試如果聲明。我發現了一個我不明白的特定行爲。Erlang語法錯誤不清楚

以下聲明確實可以正常工作。

some_comp(Arg1) -> 

if 
    (cal(Arg1)>50000)->'reached'; 
true -> 'invalid' 
end. 

cal(Arg2)-> 
%% some calculation. 

但是下面顯示的錯誤語法附近,如果:

some_comp(Arg1) -> 
Val=cal(Arg1); 
if 
    (Val>50000)->'reached'; 
true -> 'invalid' 
end. 

cal(Arg2)-> 
%% some calculation. 

我的問題是爲什麼會出現錯誤。而不if語句的一部分纈氨酸= CAL(Arg1)將不工作良好

+2

你會得到什麼錯誤語法?這應該是你的問題的重要組成部分。 – Jubobs

+0

@Jubobs我得到**語法錯誤附近,如果** – amerv1

回答

2

因爲表達式應該由,,不;隔開:

Val=cal(Arg1), 
if ... 

;if/case/receive和隔板函數子句。

+0

非常感謝..它的工作。我認爲**; **也是條件陳述之外的表達分隔符。 **,**是表達式在身體內部的表情。 – amerv1

+0

@ amerv1';'分離備選方案,如替代功能/ if/case /接受分句,而','分隔表達體。認爲英語不是java。 – rvirding