【发布时间】:2020-08-19 12:34:43
【问题描述】:
我认为是:(b(X); c(X)) :- a(X).
但它会显示错误: 错误:无权修改静态过程 `(;)/2' 错误:定义在 c:/program files/swipl/boot/init.pl:320
我只是找不到正确的语法。
【问题讨论】:
-
你没有。 Prolog 不是答案集编程。语法由 horn 子句 组成。
-
“你没有”是什么意思?你的意思是a(X) => b(X) V c(X) 不能用prolog表示?还是有办法?
-
@WillemVanOnsem 你甚至可以在 ASP 中做到这一点吗?
-
@DavidTonhofer:是的,请参阅cs.cmu.edu/~cmartens/asp-notes.pdf 的第 7 节或web.stanford.edu/~vinayc/logicprogramming/html/… 的练习 7 当然,并非所有(简单)ASP 求解器本身都支持这一点。
-
@WillemVanOnsem 谢谢。这太棒了。
标签: prolog