Erlang语法错误不清楚

时间:2015-06-09 07:55:14

标签: function variables if-statement functional-programming erlang

我刚刚开始使用Erlang。我正在尝试if声明。我发现了一个我不理解的特定行为。

以下陈述确实有效。

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语句的部分 Val = cal(Arg1)确实运作良好

1 个答案:

答案 0 :(得分:2)

因为表达式应以,分隔,而不是;

Val=cal(Arg1),
if ...

;if / case / receive和函数子句的分隔符。