为什么/什么时候erl发出警告:过时的消息?

时间:2015-11-14 15:27:56

标签: erlang erl

我在 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.

何时/为何会发生这种情况?感谢。

1 个答案:

答案 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.