1

この不等式解決プログラムをインターネットの情報源から見つけました。うまく動作します。これがそのプログラムです。

:-use_module(library(clpq)).

dec_inc(Left,Right):-
   copy_term(Left-Right,CopyLeft-CopyRight).
   tell_cs(CopyLeft).
   max(CopyRight,Right,Leq).
   tell_cs(Leq).

max([],[],[]).
max([E=<_|Ps],[_=<P1|P1s],[K=<P1|Ls]):-
   sup(E,K),
   max(Ps,P1s,Ls).

tell_cs([]).
tell_cs([C|Cs]):-                                   
   {C},
   tell_cs(Cs).

このプログラムに関して私が抱えている問題は、大文字の変数を使用してプログラムを実行すると機能することですが、単純な文字の変数では機能しません。

これは、この問題を解決するために使用した構文です。

例えば:-

{2*X+3>=5}.

これは機能し、正しい答えが得られます。

{2*x+3>=5}.

これを実行すると、プロローグは言う

ERROR: Unhandled exception: nf(y,_G3082): argument 1 must be a a numeric expression

SWI-Prolog バージョン 6.6.0 を使用しています。ここで何が問題で、どうすれば解決できますか。

4

0 に答える 0