lparse/clingo: 如何用紧凑的形式表达下面的内容?
lparse/clingo: How to express the following in a compact form?
b(X) :- a(b(X)).
c(X) :- a(c(X)).
d(X) :- a(d(X)).
etc.
我想用简洁的形式来表达:
F :- a(F).
但是,这是一个语法错误。正确的做法是什么?
简而言之ASP这是不可能的。有 HEX 可以使用变量作为谓词,但这不会直接使您的程序(或您的想法)工作。
为了解决实践中的问题,你总是可以在它周围添加另一层谓词(这是 HEX 内部所做的):
true(F) :- true(a(F)).
b(X) :- a(b(X)).
c(X) :- a(c(X)).
d(X) :- a(d(X)).
etc.
我想用简洁的形式来表达:
F :- a(F).
但是,这是一个语法错误。正确的做法是什么?
简而言之ASP这是不可能的。有 HEX 可以使用变量作为谓词,但这不会直接使您的程序(或您的想法)工作。
为了解决实践中的问题,你总是可以在它周围添加另一层谓词(这是 HEX 内部所做的):
true(F) :- true(a(F)).