Problog查询query(member(one, [one,two,three]))报错原因咨询
问题解答
ProBlog 不像标准 Prolog 那样默认内置 member/2 谓词,你遇到的错误就是因为系统找不到这个谓词的定义代码。解决方法很简单,先手动定义 member/2 的规则,再执行查询即可。
具体操作:
- 先在代码中添加
member/2的子句定义:
% 子句1:若X是列表的首个元素,则X是该列表的成员 member(X, [X|_]). % 子句2:若X是列表尾部T的成员,则X是整个列表的成员 member(X, [_|T]) :- member(X, T).
- 再执行你的查询语句:
query(member(one, [one,two,three])).
这样就能得到预期的 true 结果了。
内容的提问来源于stack exchange,提问作者Toni
相关产品推荐
相关产品推荐

