prolog - 如何使基本子句失败并使用递归序言
问题描述
我必须确保列表中的每个成员都在 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;
解决方案
推荐阅读
- c# - publishing asp.net web application using msbuild
- github - how to delete someone else's repo? (not forked)
- node.js - 我们应用程序中的日期格式
- python - Data doesn't fit
- c# - C#: How to Serialize a Dynamic Component of System.Type to send via SignalR?
- c++ - 如何在 WndProc 中处理 char 的 key_down 和 key_up?
- javascript - 强制初始化类以使用方法?
- laravel - 有没有办法只从这个 Laravel 查询中返回 ID
- python - 在 Python Pandas 中,如何根据现有的 2 列重复值添加新列
- android - 如何修复 viewBinding { enabled true } 中未发生的错误 buildFeatures { viewBinding = true }