私は現在、ルートをリンクしてバーミンガム地域の基本的なGPSを作成する再帰的なPrologプログラムに取り組んでいます。現時点では、次のように出力を取得できます。
入力
routeplan(selly_oak, aston, P).
出力
P = [selly_oak, edgbaston, ... , aston]
私がやりたいのは、プログラムにある種のインターフェースを提供させることです。そのため、次のように入力するとします。
Route from selly_oak to aston
それは私に以下を提供します:
Go from selly_oak to edgbaston
Go from edgbaston to ...
Finally, Go from ... to aston.
Prologは強力な言語なので、これは簡単に可能だと思いますが、私が取り出した本の多くはこの部分をスキップしているようです。詳細はわかりませんが、私が知る限り、write()とread()の行に沿って何かを使用する必要があります。
ここにいる誰かが、いくつかの基本的な例や詳細情報へのリンクを持ったProlog初心者を出してくれませんか?
編集:これらの答えの多くは非常に複雑に見えます。解決策は約5〜10行のコードである必要があります。次の行に沿って何かを行うことができるので、値の読み取りは問題ではありません。
find:-
write('Where are you? '),
read(X),
nl, write('Where do you want to go? '),
read(Y),
loopForRoute(X,Y).
write()を使用して出力を書き出すことができれば、新しい行(nl)を使用して、上記の出力のように表示できるようにしたいと思います。
これが私の入力である場合、これらの入力で機能するように最上位のrouteplan()をどのように調整しますか?また、これらのステーションのラインを追加のパラメータとして追加した場合、これはどのように実装されますか?すべてのリンクは、次のようにファイルの先頭で定義されます。
rlinks(selly_oak, edgbaston, uob_line).
rlinks(edgbaston, bham_new_street, main_line).
したがって、この情報があれば、そのように行を読み取ることができればよいでしょう。
Go from selly_oak to edgbaston using the uob_line
Go from edgbaston to ... using the ...
Finally, go from ... to aston using the astuni_line