如何在 Prolog 中自动化分号
How to automate semicolon in Prolog
我正在 class 中学习 Prolog,并向我展示了一种自动按分号键直到没有更多解决方案的方法。我曾尝试在 Google 上进行搜索,但我使用 findall
得到的示例并未显示。在 Prolog shell?
中是否有任何其他方法可以自动按下 ;
例如,无需重复按;
即可显示所有答案。
X = one ;
X = two ;
X = three ;
X = four.
一个简单的解决方案,以member/2
为例,就是在目标后面使用fail/0
谓词:
?- member(X, [1,2,3]), writeq(X), nl, fail.
1
2
3
false.
我正在 class 中学习 Prolog,并向我展示了一种自动按分号键直到没有更多解决方案的方法。我曾尝试在 Google 上进行搜索,但我使用 findall
得到的示例并未显示。在 Prolog shell?
;
例如,无需重复按;
即可显示所有答案。
X = one ;
X = two ;
X = three ;
X = four.
一个简单的解决方案,以member/2
为例,就是在目标后面使用fail/0
谓词:
?- member(X, [1,2,3]), writeq(X), nl, fail.
1
2
3
false.