Erlang中的Dialyzer警告,记录构造和不正确的列表

时间:2018-07-01 18:15:41

标签: erlang dialyzer

我正在尝试修复从透析器找到的erlang代码中的警告。我遇到了一些错误,例如记录构造和列出这些错误的原因。谁能解释。

谢谢!

1 个答案:

答案 0 :(得分:0)

正确的列表

[1|[2]]

列表不正确

[1|2]

...可能是由于定义了这样的函数导致的:

f([H|[]]) -> H-1;
f([H|T]) -> [H - 1 | f(T) ].

代替:

f([H|[]]) -> [H-1];
f([H|T]) -> [H - 1 | f(T) ].

记录构造错误

http://erlang.org/pipermail/erlang-questions/2013-June/074118.html

我在erlang 20.2中没有得到该记录构造错误。