0
在Prolog程序陳述如下:鄰居,鎮,壩,鏈接關係
town(a).
town(b).
town(c).
town(d).
dam(e).
dam(f).
link(a,b).
link(a,c).
link(c,d).
link(b,d).
link(b,c).
link(c,e).
link(a,e).
link(d,f).
neighbour(X,Y):- link(X,Y) ; link(Y,X).
這將是正確的程序all_neighbours(L,X)返回所有鄰近城鎮的名單L到X:all_neighbours(L,X): - 鎮(Y),findall(Y,鄰居(X,Y),L)。
這將是正確的程序has_dam(L)它返回至少有一個相鄰壩所有城鎮的名單L:has_dam(L): - 壩(Y),鎮(X), findall(X,neighbor(X,Y),L)。
這將是正確的程序no_dam(L)返回有沒有相鄰壩所有城鎮的名單L:no_dam(L): - 鎮(X),不大壩(Y)的findall (X,鄰居(X,Y),L)。