まず第一に、あなたの助けに感謝します.
私の問題について:私が持っているとしましょう:
some_fact:- true.
その上に、次のようなルールをアサートしたいと思います。
some_fact:- fail, !.
これはsome_fact:- true.
、ルールを削除せずに " " を強制的に false に変換したいためです ( を使用したくありませんabolish(some_fact,0).
) 。
問題は、asserta/1 にコンマを配置できないため、それを行う方法が見つからないことです。私が言いたいのは、私が置くとき:
asserta(some_fact:- fail, !).
間のコンマは、ルール全体で asserta/1 ではなく asserta/2 への呼び出しを強制します。これは文字列をアサートするため、引用符を使用してそれを防ぐことはできません。
もちろんasserta(some_fact:- fail).
、プロローグは true を返す次の some_fact を検索するため、単純に置くことはできません。
何か案は?再度、感謝します!