热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

没有与erlang匹配的函数子句

如何解决《没有与erlang匹配的函数子句》经验,为你挑选了1个好方法。

我刚拿起Erlang时遇到一个简单的问题,但无法修复它或找到任何有关它的东西。我正在尝试定义一个模块来检查an atom是否在给定列表中。我是这样通过Erlang shell输入列表的:

veggies:veggieMember([cucumber,tomato,potato],tomato).

但是我总是 exception error: no function clause matching

也许我误解了基础知识,但是这是我想要做的模块代码:

-module(veggies).

-export([veggieMember/2]).

veggieMember(veggieList,query)->
case lists:member(query, veggieList) of
    true->veggieList;
    false->[query|veggieList]
end.

Łukasz Ptasz.. 6

erlang中的绑定以大写字母开始。因此应该是:

-module(veggies).

-export([veggieMember/2]).

veggieMember(VeggieList,Query)->
case lists:member(Query, VeggieList) of
    true -> VeggieList;
    false -> [Query|VeggieList]
end.

在您的示例中,它不起作用,因为没有匹配的函数子句。Atom veggieList与list 不匹配,atom [cucumber,tomato,potato]与atom query不匹配tomato

错误本身,它是标准错误之一。这意味着您已调用函数,并且没有;匹配任何函数子句(以分隔)。



1> Łukasz Ptasz..:

erlang中的绑定以大写字母开始。因此应该是:

-module(veggies).

-export([veggieMember/2]).

veggieMember(VeggieList,Query)->
case lists:member(Query, VeggieList) of
    true -> VeggieList;
    false -> [Query|VeggieList]
end.

在您的示例中,它不起作用,因为没有匹配的函数子句。Atom veggieList与list 不匹配,atom [cucumber,tomato,potato]与atom query不匹配tomato

错误本身,它是标准错误之一。这意味着您已调用函数,并且没有;匹配任何函数子句(以分隔)。


推荐阅读
author-avatar
勤劳的蛇zhong_138
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有