0
任何人都知道爲什麼這一直失敗?問題與'大於'
foo :- write('3 numbers: '),
read(A),
read(B),
read(C),
(A > B,B > C,write(A),tab(1),write(B),tab(1),write(C));
(A > C,C > B,write(A),tab(1),write(C),tab(1),write(B));
(B > A,A > C,write(B),tab(1),write(A),tab(1),write(C));
(B > C,C > A,write(B),tab(1),write(C),tab(1),write(A));
(C > B,B > A,write(C),tab(1),write(B),tab(1),write(A));
(C > A,A > B,write(C),tab(1),write(B),tab(1),write(A)).
是一個prolog函數,可以按順序打印3個輸入數字。 我不斷收到此錯誤:
uncaught exception: error(instantiation_error,(>)/2)
不錯!謝謝!問題解決了。 還有一個疑問,在它顯示答案後,它不停地問我'是真的嗎?' ..爲什麼? – juliomalegria
@julio阿爾及利亞:我懷疑你正在看到一個提示,反映了** foo/0 **可能會在更多的「解決方案」中取得成功。您可以通過在規則末尾添加cut **!**來防止這種可能性。如果目標不包含自由變量(如本文所述),則某些Prolog實現將跳過頂級提示以獲得更多解決方案。 – hardmath