我刚拿起erlang而且我遇到了一个简单的问题,但是我无法修复它或找到任何关于它的信息。我试图定义一个模块来检查一个原子是否在给定的列表中。我通过erlang shell进入列表,如下所示:
蔬菜:veggieMember([黄瓜,番茄,马铃薯],番茄)
但我总是得到异常错误:没有匹配的函数子句
也许我误解了基础知识,但这是我试图做的模块代码:
-module(veggies).
-export([veggieMember/2]).
veggieMember(veggieList,query)->
case lists:member(query, veggieList) of
true->veggieList;
false->[query|veggieList]
end.
答案 0 :(得分:4)
在erlang中绑定以大写字母开头。所以它应该是:
-module(veggies).
-export([veggieMember/2]).
veggieMember(VeggieList,Query)->
case lists:member(Query, VeggieList) of
true -> VeggieList;
false -> [Query|VeggieList]
end.
在您的示例中,它不起作用,因为没有匹配的函数子句。原子veggieList
与列表[cucumber,tomato,potato]
不匹配,原子query
与原子tomato
不匹配。