我在課堂上學習Prolog,並顯示了一種自動按分號鍵直到沒有更多解決方案的方法。我試圖在谷歌上搜索,但我使用findall
的例子,這不是顯示。有沒有其他方法可以在Prolog shell中自動按;
?如何在Prolog中自動化分號
例如,顯示所有解決方案而不反覆按;
。
X = one ;
X = two ;
X = three ;
X = four.
我在課堂上學習Prolog,並顯示了一種自動按分號鍵直到沒有更多解決方案的方法。我試圖在谷歌上搜索,但我使用findall
的例子,這不是顯示。有沒有其他方法可以在Prolog shell中自動按;
?如何在Prolog中自動化分號
例如,顯示所有解決方案而不反覆按;
。
X = one ;
X = two ;
X = three ;
X = four.
一個簡單的解決方案,使用了member/2
用於舉例說明,是使用fail/0
謂詞的目標之後:直接代替``按壓A`
?- member(X, [1,2,3]), writeq(X), nl, fail.
1
2
3
false.
我應該在我的文章中更加清楚,我想要調用謂詞'number(X)'生成的所有解決方案。我沒有清單。 –
'member'和'number'之後的數字是什麼意思? –
@RowenMcDaniel'member/2'表示'member'是一個有2個參數的函數。而且,Paulo的解決方案即使在你的情況下也能工作。你只需要想一想:'my_predicate(X),writeq(X),nl。 fail.'。 'member(X,[1,2,3])'只是一個爲'X'生成多個解決方案的謂詞調用的例子。 – lurker
GNU的Prolog的頂層允許這;' – false