私は Prolog の完全な初心者であり、使用方法を知りたいと思っていましたground/1
。
現時点では、次のコードがあります。
intertwine([], [], []).
intertwine([E|Es], Fs, [E|Gs]) :- intertwine(Es, Fs, Gs).
intertwine(Es, [F|Fs], [F|Gs]) :- intertwine(Es, Fs, Gs).
しかし、シェルでこれを呼び出そうとすると:
intertwine([1,2],X,[1,a,2,b]).
正しい答えが得られX=[a,b]
ますが、別の答えが残っていると思われるかのように、クエリは終了しません。だから、「;」を押します そして、出力として「false」を取得します。ground/1
ケースを処理するために3番目のリストがすでに完全にインスタンス化されているかどうかを確認するために使用する必要がある別の質問の回答を読みました。
つまり、完全な初心者なので、その方法がわからないのです。それで、地面がどのように機能するか、それを使用して特定のパラメーターのインスタンス化をチェックし、それを使用してコードが存在しない答えをチェックしないようにする方法を説明してくれる親切な人はいますか?