我正在使用yap。 假设我有这种情况:
p(x,y): - q(x),f(x,y),g(x)。
我需要使用命令 listing(p)将谓词的主体放在列表中。
预期产量应为: [Q,F,G]。
我怎么能这样做?
答案 0 :(得分:0)
使用服务谓词
enum_conj((A, B),X) :- !, (enum_conj(A, X) ; enum_conj(B, X)).
enum_conj(X, X).
我们可以做到
?- clause(p(_, _), P), setof(F, J^A^(enum_conj(P, J), functor(J, F, A)), L).
L = [f,g,q],
P = (q(x),f(x,y),g(x))
所有使用的内置都是ISO标准