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).
は、これらには、以下のクエリから正しい結果です:
クエリ1から?-dam(X), once(neighbour(X,Y)),town(Y).
結果:X=e Y=c; X=f Y=d
クエリ2 - ?-dam(X), neighbour(X,Y),!,town(Y).
結果:X=e Y=c
クエリ3から?-dam(X),!,neighbour(X,Y),town(Y).
結果:X=e Y=c; X=e Y=a
これは宿題だと思います。任意のプロローグシステムで自分で試すことができます。 – gusbro
3つのすべてについて「いいえ」が返されますが、私は間違いがないと確信しています。 –
あなたが期待している結果は正しいです。これらのクエリに「いいえ」が返された場合は、コードを参照していない(ロードしている)と確信しています。 – gusbro