首页 > 解决方案 > 如何使基本子句失败并使用递归序言

问题描述

我必须确保列表中的每个成员都在 0 到 25 之间,我编写了以下代码:

我尝试使用 cut、failure 甚至 cut with failure。

test25([]).
    test25([H|T]):-
        H>=0,H=<25,test25(T).

当元素小于 25 时,我得到了正确的结果,但如果 base 子句是一个空列表,我也得到了正确的结果。预期结果:

    test25([]).
false;
test25([1,2,3]).
true;
test25([1,2,33]).
false;

标签: prolog

解决方案


推荐阅读