Syntax 如何在Prolog中自动生成分号

Syntax 如何在Prolog中自动生成分号,syntax,prolog,prolog-toplevel,Syntax,Prolog,Prolog Toplevel,我在课堂上学习Prolog,并向我展示了一种自动按分号键直到没有更多解决方案的方法。我曾尝试在谷歌上搜索,但我得到的示例使用的是findall,而不是显示的内容。是否有其他方法可以自动按下 例如,不按显示所有解决方案重复 X = one ; X = two ; X = three ; X = four. 使用member/2作为示例,一个简单的解决方案是在目标之后使用fail/0谓词: ?- member(X, [1,2,3]), writeq(X), nl, fail. 1 2 3 fals

我在课堂上学习Prolog,并向我展示了一种自动按分号键直到没有更多解决方案的方法。我曾尝试在谷歌上搜索,但我得到的示例使用的是
findall
,而不是显示的内容。是否有其他方法可以自动按下

例如,不按
显示所有解决方案重复

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.

在我的帖子中我应该更清楚,我想要调用谓词
number(X)
生成的所有解决方案。我没有列表。
member
number
后面的数字是什么意思?@RowenMcDaniel
member/2
表示
member
是一个有两个参数的函子。此外,保罗的解决方案即使在你的情况下也有效。你只需要仔细考虑一下:
my_谓词(X),writeq(X),nl。失败。
member(X[1,2,3])
只是一个谓词调用的示例,它为
X
生成多个解决方案。GNU Prolog的顶层允许直接按
a
代替