我是新來的prolog,並且正在試驗如何讓它在找到一個答案後停止查詢。我使用此代碼:使Prolog返回一個解決方案,並停止顯示查詢選項
member1(L,[L|_]).
member1(L,[_|RS]) :- member1(L,RS),!.
的結果是:「真正的」
| ?- member1(3,[3,2,3]).
true ? a
yes
我迷路了,我怎麼能拿序言停止打印而只是打印「是」。我試過使用if/else構造和格式函數,但它仍然打印「true?」。有任何想法嗎?
你只想要一個答案?一個'真'? Τrue表示3 *是列表[3,2,3]的成員。第二個原因是查詢在列表中再次找到它。 'member1(2,[3,2,3])''會給你一個真實的。 – Shevliaskovic
如果你在第一個真(而不是';')之後按回車,它會停止回溯 – Shevliaskovic