4
実行時にSWI-Prologで新しい制約を生成するプログラムを作成しようとしています。 is_true([A,means,B])
は、実行時に別の制約を生成することを意図している:実行時にCHR制約を定義する
:- use_module(library(chr)).
:- chr_constraint is_true/1.
is_true([A,means,B]) ==> (is_true(A) ==> is_true(B),writeln('asserted')).
is_true([[A,is,true],means,[A,is,not,false]]).
is_true([something,is,true]).
しかし、私はこれらのクエリを入力すると、is_true
制約は効果がないようです。 is_true([something, is, not, false])
true
戻りません:
?- is_true([something,is,true]).
true .
?- is_true([something,is,not,false]).
is_true([something, is, not, false]).
をコンソールでの制約は効果がないようだアサート、次のいずれか
?- asserta(is_true(A>B)==>(is_true(B<A),writeln("asserted"))).
true.
?- is_true(4>3).
is_true(4>3).
、実行時に新しいCHR制約を定義する別の方法がありますか?