首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Prolog检查列表是否包含偶数个元素

Prolog检查列表是否包含偶数个元素
EN

Stack Overflow用户
提问于 2018-06-08 04:00:23
回答 1查看 1.2K关注 0票数 0

我必须检查一个列表是否包含偶数个没有内置的元素。

示例:

代码语言:javascript
运行
复制
containsEvenNumber([a,b,c,a,a], a).

返回false

代码语言:javascript
运行
复制
containsEvenNumber([a,b,c,a], a).

返回true

当前状态:

代码语言:javascript
运行
复制
not(A) :-
    A, !,
    fail.
not(_).
equal([E|_], E).
containsEvenNumber([], _).
containsEvenNumber([E|Tail], E) :-
    unevenCount(Tail, E).

containsEvenNumber([Head|Tail], E) :-
    not(equal([Head|Tail], E)),
    evenCount(Tail, E).

evenCount([], _).
evenCount([E|Tail], E) :-
    unevenCount(Tail, E).

evenCount([Head, Tail], E) :-
    not(equal([Head|Tail], E)),
    unevenCount(Tail, E).

unevenCount([], _) :-
    fail.
unevenCount([E, Tail], E) :-
    evenCount(Tail, E).

unevenCount([Head, Tail], E) :-
    not(equal([Head|Tail], E)),
    unevenCount(Tail, E).

当元素出现时,我尝试在状态之间切换。它不起作用,因为我从来没有进入这种状态,在这种状态下,头部不是元素,或者更确切地说,我也进入了这种状态,当头部是元素时,我也会返回false。

我怎样才能使它工作/修复它?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50749333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档