当前位置:  开发笔记 > 小程序 > 正文

Prolog循环虽然变量结果

如何解决《Prolog循环虽然变量结果》经验,为你挑选了1个好方法。

我在Prolog中写了一个小程序.目前我可以打印第一个结果

test(X, 1, 4, 5).
write(X).

但如果X的结果不止一个,我该如何打印下一个?

谢谢.



1> Kaarel..:

使用故障驱动的循环:

test(X, 1, 4, 5), writeln(X), fail ; true.

或者以更易读的方式使用forall/2:

forall(test(X, 1, 4, 5), writeln(X)).

没有必要构建所有解决方案的列表(这findall/3是为了什么),除非您需要此列表而不仅仅是将其打印出来.

如果您的Prolog没有,那么您可以forall/2通过以下方式自行实现它:

forall(A, B) :-
    \+ (call(A), \+ call(B)).

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有