地方爲函數的條款的順序是不重要的,是它的基礎的情況下最後:在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