私はプロローグが初めてです。以下に基本的なコードを書きました。
flight(acompany, paris, 7).
flight(bcompany,paris,7).
flight(ccompany,paris,7).
flight(dcompany,paris,7).
search([X],Y,Z) :- flight(X,Y,Z).
search([X|T],Y,Z) :- search(T,Y,Z) , flight(X,Y,Z).
やりたいことは2つ。最初に次のようにクエリすると
?- search(X, paris,7).
プロローグが最初に見せてくれるのは
X = [acompany]
しかし、最初のクエリでリスト内のすべての要素を表示したい。
すなわち
X = [acompany, bcompany, ccompany, dcompany]
もう 1 つは、リスト内の要素が重複しないようにすることです。
例えば;
X = [acompany] ;
X = [bcompany] ;
X = [ccompany] ;
X = [dcompany] ;
X = [acompany, acompany] ;
私はそのような最後のリストを望んでいません。
これら2つのことをどのように修正できますか?ありがとう。