2017-04-11 9 views
0

私はPrologを初めて使っています。現在、整数を1つのルールの引数としてSWI-Prologの別のルールに渡すことに苦労しています。たとえば:Prologルールの整数の受け渡し

left(B) :- B is B - 1. 

...

cond2(X) :- X = left(4). 

は、任意の助けいただければ幸いです。

+5

あなたはPrologについて少なくとも3つの基本的な誤解を示しています。 Prologでは、値 'B - 1'と同じ値であることを言うので、(1) 'B is B - 1 'は常に失敗します。もちろん、これは不可能です(2)Prologでは、述語は値を戻さない。それらは成功するか失敗するかのいずれかです。したがって、 'X = left(4)'は 'left'を"呼び出し "ません。(3)' =/2'は代入演算子ではありません。統一オペレータです。 – lurker

答えて

0

あなたは次のことを試すことができます。

left(A,B) :- B is A - 1. 

...

cond2(X) :- left(4,X). 

を次にcond2(X)X = 3を返す必要があります。

関連する問題