我有以下Erlang代码,当我尝试编译它时,它给出如下警告,但这是有道理的。函数需要两个参数,但我需要匹配“其他所有”而不是x,y或z。Erlang案例陈述
-module(crop).
-export([fall_velocity/2]).
fall_velocity(P, D) when D >= 0 ->
case P of
x -> math:sqrt(2 * 9.8 * D);
y -> math:sqrt(2 * 1.6 * D);
z -> math:sqrt(2 * 3.71 * D);
(_)-> io:format("no match:~p~n")
end.
crop.erl:9: Warning: wrong number of arguments in format call.
我正在尝试一个匿名变量后io格式,但它仍然不开心。
我会抛出一个异常,或者甚至不检查x,y,z以外的其他东西。 Erlang难以理解,不需要过度。 – Berzemus
没错。但是如果不检查,你可以在比调用函数晚得多的地方发生错误。 {ok,R} = fall_velocity(A,B)可能会提前指出错误。 –
http://www.erlang.se/doc/programming_rules.shtml#REF32551 –