2
我試圖比較兩個人,如果這個人之前曾經扮演過某個人,然後贏得那麼輸給了這個新人,那麼這個人在技術上已經超過了其他人。Prolog鏈接優勝者?
例如,它的設置是這樣的:
它是如何建立例子:winner(won, lost).
winner(john, jacob).
winner(mike, john).
winner(scott, mike).
winner(matt, scott).
winner(X, Z) :- winner(X, Y), winner(Y, Z).
如果我稱之爲:winner(matt, mike).
它會因爲亞光擊敗斯科特返回true,這意味着他也因爲邁克輸給斯科特而擊敗邁克。
本質上我想能夠打電話winner(matt, jacob).
它會返回true。
我只能用當前的規則查詢下一層,我該如何去查詢無限層次?我很困惑如何解決這個問題。
感謝您的回答!我無法把頭圍住它,我知道我很近。 :) – user3646479