我有一套排名順序的公司。我希望我的規則能夠檢查指定列表中的公司是否按排名順序排列,以及規則是否重複,直到列表中的所有公司都已經過檢查。如何製作檢查公司排名的遞歸列表?
目前,我有以下幾點:
isOrder([]).
isOrder([COM1,COM2|T]) :-
rank(COM1,D), rank(COM2,E),
D<E,
print("in order"),
isOrder([COM2|T]).
然而,這似乎並沒有工作。有時,遞歸會一直持續下去,而不會結束,有時候遞歸根本不起作用。這是我改變代碼以嘗試獲得正確答案的時候。
任何人都可以幫助我嗎?我剛開始使用Prolog,我的理解受到嚴重限制。任何幫助將不勝感激。
不僅爲空單的條款「不傷害」,它匹配(邏輯)的真理,一個空列表(平凡)訂購。 – 2011-01-09 18:49:40