首先感谢您的帮助。
关于我的问题:假设我有:
some_fact:- true.
我想在它上面声明一个规则,如下所示:
some_fact:- fail, !.
这是因为我想在some_fact:- true.
不删除规则的情况下将“”转换为强制为假(我不想使用abolish(some_fact,0).
)
问题是我找不到这样做的方法,因为我无法将逗号放在 asserta/1 上。我的意思是当我把:
asserta(some_fact:- fail, !).
之间的逗号强制调用 asserta/2 而不是 asserta/1 整个规则,我不能阻止使用引号,因为它断言一个字符串。
当然我不能简单地说asserta(some_fact:- fail).
,因为 prolog 会搜索下一个返回 true 的 some_fact。
有任何想法吗?再次感谢!