我是Prolog的新手,我遇到了问题 . 我有以下事实:
_________________
likes(a,apple).
likes(a,banana).
likes(a,orange).
_________________
我的查询将是:
counts(a,Var).
哪里 Var = [apple,banana,orange]
. 我不希望以这种方式
Var=apple ;
Var=banana;
Var=orange;
任何建议或帮助将不胜感激 . 提前致谢 .
2 回答
我会诉诸全能的
findall/3
来解决你的问题 .所以你的
counts(a, Var)
只是一个findall/3
调用(即使它真的收集而不是计数):你得到以下结果:
如果我理解你正确,你想要计算像列表一样给出水果的实体数量 . 那么,代码将是这样的: