0
所以我有一個火車站的數據庫,簡單地標記爲火車(st1,st4)。 etcProlog findall help
我想實現查找所有謂詞,以便用戶可以查詢所有路徑(X,Y,路徑)。 和代碼將從X返回所有的路徑爲Y.
任何幫助將是真棒感謝
所以我有一個火車站的數據庫,簡單地標記爲火車(st1,st4)。 etcProlog findall help
我想實現查找所有謂詞,以便用戶可以查詢所有路徑(X,Y,路徑)。 和代碼將從X返回所有的路徑爲Y.
任何幫助將是真棒感謝
train(st1,st4).
train(st1,st2).
train(st2,st3).
train(st3,st4).
train(st4,st5).
train(st3,st6).
train(st6,st5).
find(X,Y,[X|Y]):-train(X,Y).
find(X,Y,[X|Q]):-train(X,Z),find(Z,Y,Q).
findall2(X,Y):-find(X,Y,Q),write(Q),nl,fail.
我希望這就是你所期待的。
相同的答案@sowa,但最後一行改爲:
allpaths(X, Y, Ps) :- findall(P, find(X, Y, P), Ps).
findall/3
是一個內置的Prolog謂詞。
這是一個功課問題嗎?你有一個單一的路徑謂詞「路徑(X,Y,路徑)」? – 2010-11-27 13:53:51