地方为函数的条款的顺序是不重要的,是它的基础的情况下最后:在Erlang中是否有一种习惯的方法来命令函数子句?
all(Pred, [Head|Tail]) ->
case Pred(Head) of
true -> all(Pred, Tail);
false -> false
end;
all(Pred, []) when is_function(Pred, 1) -> true.
或者基本情况第一:
all(Pred, []) when is_function(Pred, 1) -> true;
all(Pred, [Head|Tail]) ->
case Pred(Head) of
true -> all(Pred, Tail);
false -> false
end.
从标准库查看源代码,它似乎这个惯例是最后的基本情况。这是首选的风格?是有原因的,还是只是它的方式?
哎呀,对不起,这是一个不好的例子,我的意思是一个函数,其中子句的排序不会改变行为。修改示例以反映这一点。 – pjb3 2009-11-24 04:31:49