1
0
无法解析其剩余目标的查询称为挣扎查询。当计算打算成功或有限地失败时,它们可能会挣扎。剩余目标引入了第三种状态,既不是成功,也不是有限失败。 约束逻辑程序可能无法调用某些约束解算器,因为变量的实例化或约束不够。为了避免在约束求解器中挣扎,它们通常提供标签作为最后手段。 第三种状态出现在顶层,列出剩余目标。如何查询剩余目标取决于实现。典型的谓词有:
SWI-Prolog不在顶层打印剩余变量,这是SWI-Prolog提供的一个服务,只显示投影的变量。但是你永远不能查询剩余的:
Pitty说SWI Prolog不支持call\u/2。复制\u term/3并不是真正的替代品。在我的Prolog系统中,我已经停止在顶层计算投影并显示所有东西。同时我也支持调用\u/2:
call\u/2也可以在ECLiPSe Prolog和SICStus Prolog中找到。在SICStus Prolog中,它返回一个成对列表,也显示主变量。另一方面,eclipseprolog只返回伪变量。还有一些call\u vars/2的兼容性问题,比如 here . |
2
6
在这里,答案是以 它描述了一个单一的解决方案。
同样,这是一个答案替代,但这一次它描述了无限多的解决方案。 通常,答案和解决方案的概念可以互换使用,但一旦我们使用延迟目标或约束,我们就需要一个明确的区分。现在的新情况是,答案可能包含任意数量的解决方案,包括一个都没有。
一些实现提供
SICStus 4已更换
另一个是
|
Sam · 如何在Swi Prolog中对元组列表排序 6 年前 |
davo · 序言:delete谓词如何提供列表的开头 6 年前 |
Zeph · 在Prolog中添加到列表列表 6 年前 |
Deeps · 在prolog中截断浮点数 6 年前 |
Anthony Gauthier · 分析不同规则中的规则体 6 年前 |
quixote · 如何在swi prolog中删除命令历史记录 6 年前 |
Walker · Prolog比较列表[关闭] 6 年前 |
user7303261 · 在prolog中运行main 6 年前 |
MasterYork42 · Prolog逻辑难题不起作用? 6 年前 |