Hin*_*sum 3 syntax erlang range read-eval-print-loop
我在 erl 中有这个简单的文本:
$erl
Erlang/OTP 19 [erts-8.2] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Eshell V8.2 (abort with ^G)
1> right_age(X) when X >= 16, X =< 104 -> true;
1> right_age(_) -> false;
1> right_age(30).
* 1: syntax error before: 'when'
Run Code Online (Sandbox Code Playgroud)
我哪里出错了以及如何解决?
谢谢。
您无法使用问题中显示的方法在 Erlang shell 中定义命名函数。您必须使用fun关键字来定义函数,并将其绑定到变量:
1> RightAge = fun(X) when X >= 16, X =< 104 -> true; (_) -> false end.
#Fun<erl_eval.6.128620087>
2> RightAge(30).
true
Run Code Online (Sandbox Code Playgroud)
顺便说一句,还请注意,通过将防护移到函数体中,您可以更轻松地定义此函数,只需一个子句:
1> RightAge = fun(X) -> X >= 16 andalso X =< 104 end.
#Fun<erl_eval.6.128620087>
2> RightAge(30).
true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |