10

Prolog で簡単な述語を書き、CLP(FD) とその連立方程式を解く能力を試してみました。

problem(A, B) :-
    A-B #= 320,
    A #= 21*B.

SWI で呼び出すと、次のようになります。

?- problem(A,B).
320+B#=A,
21*B#=A.

一方、GNUでは、次の正しい答えが得られます。

| ?- problem(A,B).

A = 336
B = 16

何が起きてる?理想的には、より堅牢な環境である SWI で正しい結果を得たいと考えています。

4

1 に答える 1