我在 list.erl :
中有以下代码onupgradeneeded
在 erl shell中加载此模块会显示警告消息。
-module(list).
-export([average/1]).
average(X) when list(X) -> sum(X) / len(X).
sum([H|T]) -> H + sum(T);
sum([]) -> 0.
len([_|T]) -> 1 + len(T);
len([]) -> 0.
何时/为何会发生这种情况?感谢。
答案 0 :(得分:1)
你需要在警卫is_list(X)
使用。
-module(list).
-export([average/1]).
average(X) when is_list(X) -> sum(X) / len(X).
sum([H|T]) -> H + sum(T);
sum([]) -> 0.
len([_|T]) -> 1 + len(T);
len([]) -> 0.