0
私はPrologを初めて使っています。現在、整数を1つのルールの引数としてSWI-Prologの別のルールに渡すことに苦労しています。たとえば:Prologルールの整数の受け渡し
left(B) :- B is B - 1.
...
cond2(X) :- X = left(4).
は、任意の助けいただければ幸いです。
私はPrologを初めて使っています。現在、整数を1つのルールの引数としてSWI-Prologの別のルールに渡すことに苦労しています。たとえば:Prologルールの整数の受け渡し
left(B) :- B is B - 1.
...
cond2(X) :- X = left(4).
は、任意の助けいただければ幸いです。
あなたは次のことを試すことができます。
left(A,B) :- B is A - 1.
...
cond2(X) :- left(4,X).
を次にcond2(X)
がX = 3
を返す必要があります。
あなたはPrologについて少なくとも3つの基本的な誤解を示しています。 Prologでは、値 'B - 1'と同じ値であることを言うので、(1) 'B is B - 1 'は常に失敗します。もちろん、これは不可能です(2)Prologでは、述語は値を戻さない。それらは成功するか失敗するかのいずれかです。したがって、 'X = left(4)'は 'left'を"呼び出し "ません。(3)' =/2'は代入演算子ではありません。統一オペレータです。 – lurker