私はゴールでバックグラウンドをトリガーしようとしていますが、可能な場合は動的に行います。Prolog - 一連の動的オプションをバックトラックする
num(1).
num(2).
num(3).
num(4).
num(5).
は、その後、私はSWI-Prologのに向かうと呼ん:良く例示するために、私の問題は、我々は以下のPROLOGコードを持っているとしましょうnum(X)
を。 ;
と入力すると、すべてのソリューションを探すバックトラッキングがトリガーされます。
私が望むのは、それらの事実(num(1)
、num(2)
など)を削除し、それらの事実を動的に生成するもので置き換えることです。私がこれを達成できる方法はありますか?一種のもの、おそらく?
num(X):- for X in 1..5
上記のコードと同じ解決策が得られますか?
私が知る限り、findall
述語は私が探しているものではないリストを返します。私はすべての答えをバックトラックして、コンソールで;
を使って調べます。
私は重複しているとは思わない。私が知る限り、 'findall'はリストを返します。コンソールで ';'を使って一連の解決策を取り戻したいと思います。私は自分自身をうまく説明したいと思います。 – Ryncops
コンソールで 'member(X、[1,2,3,4,5])。 'と入力するとどうなりますか? –
@TomasBy素晴らしい、ありがとう!それでおしまい! – Ryncops