私は事実のデータベースを通って各事実の数値を合計してリストに保存するルールを作成しようとしています。具体的には、これは質問です。Prolog - リストに再帰的に追加する
2つのステーション間を移動する時間を返す/表示する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)"の形式で地上局と時刻のすべてを持つ別のファイルがあります。すなわち、オーバーグラウンド(ケントン、サウスケントン、2)。ステーション1、ステーション2、1から2になるまでの時間を表示します。
私はデータベース全体を調べて、XとYを探しています(質問5の場合)。 2つのステーションの中間に位置し、それらをリストに入れる。
コードを読みやすいように再フォーマットしました。これは実際に法的なPrologではない場合は私の謝罪、私は比例フォントでコードを読んで立つことができないと私はまた、コードスニペットの水平スクロールバーを嫌う。そう。コードの書式を変更している間に、私は中間付近の ';'がセミコロンかカンマかを知っていましたか? – sarnold