【问题标题】:Erlang syntax error unclearErlang语法错误不清楚
【发布时间】:2015-08-23 22:06:45
【问题描述】:

我刚开始使用 Erlang。我正在尝试 if 语句。我发现了一种我不理解的特殊行为。

以下语句确实可以完美运行。

some_comp(Arg1) ->

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

cal(Arg2)->
%% some calculation.

但是,以下显示了 if 附近的错误语法:

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

cal(Arg2)->
%% some calculation.

我的问题是为什么会发生错误。如果没有 if 语句,部分 Val=cal(Arg1) 可以正常工作

【问题讨论】:

  • 你得到什么错误语法?这应该是您问题的重要组成部分。
  • @Jubobs 我在 if 附近遇到 语法错误

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


【解决方案1】:

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

Val=cal(Arg1),
if ...

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

【讨论】:

  • 非常感谢..它奏效了。我认为 ; 也是条件语句之外的表达式的分隔符。 , 用于条件主体内的表达式..
  • @amerv1';'分隔替代项,例如替代函数/if/case/receive 子句,而 ',' 分隔主体中的表达式。认为英语不是 java。
猜你喜欢
  • 2017-05-28
  • 2011-08-14
  • 1970-01-01
  • 1970-01-01
  • 2012-02-17
  • 1970-01-01
  • 2012-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多