我想寫一條規則,通過事實數據庫並將每個事實的數字加起來並將其保存到列表中:具體來說,這是一個問題:序言 - 遞歸地添加到列表
根據對Q5的回答寫出規則,返回/顯示兩個車站之間的旅程需要多長時間。
回答問題5:
time(Station1,Station2) :- overground(Station1,Station2,Time),
overground(Station1,_,Time),
overground(_,Station1,Time).
time(Station2,Station1) :- overground(Station2,Station1,Time),
overground(Station2,_,Time),
overground(_,Station2,Time).
time(Station1,Station2) :- overground(Station1,Station3,Time),
time(Station3,Station2);
overground(Station1,Station3,Time),
time(Station2,Station3).
time(Station1,Station2) :- overground(Station1,_,Time),
overground(_,Station2,Time).
time(Station1,Station2) :- overground(Station2,_,Time),
overground(_,Station1,Time).
我曾嘗試添加列表,並與「時間」追加,但沒有運氣。
*是它的一個分號。
還有另一個文件,它具有格式爲「overground(X,Y,Z)」格式的所有地上站和時間。「即地上(Kenton,Southkenton,2)。其中顯示station1,station2以及從1到2所需的時間。
我試圖瀏覽整個數據庫,找到X和Y(問題5),然後將所有Z在兩個電臺之間,並將其列入清單。
我重新格式化了代碼,以使其更易於閱讀。我很抱歉,如果這實際上不再是合法的Prolog,但我無法忍受以比例字體閱讀代碼,而且我還厭惡代碼片段上的水平滾動條。所以。在重新格式化代碼時,我注意到中間附近有一個';',應該是分號還是逗號? – sarnold 2011-12-18 22:25:48