【发布时间】:2013-10-01 06:18:44
【问题描述】:
首先感谢您的帮助。
关于我的问题:假设我有:
some_fact:- true.
我想在它上面声明一个规则,如下所示:
some_fact:- fail, !.
这是因为我想在不删除规则的情况下将“@987654323@”转换为强制为假(我不想使用abolish(some_fact,0).)
问题是我找不到方法,因为我无法将逗号放在 asserta/1 上。我的意思是,当我输入:
asserta(some_fact:- fail, !).
中间的逗号强制调用 asserta/2 而不是 asserta/1 与整个规则,我不能阻止使用引号,因为它断言一个字符串。
当然我不能简单地输入asserta(some_fact:- fail).,因为 prolog 会搜索下一个返回 true 的 some_fact。
有什么想法吗?再次感谢!
【问题讨论】:
标签: prolog prolog-assert