我想检查一个任意的事实,如果它在知识库中,我想做一些事情,如果它不在知识库中,我想做一些其他的事情,但是没有( I -> T ; E)语法。我的知识库中有一些事实:unexplored(2,1).foo:- safe(A,B),% do somethingelse if unexplored(A,B) is not in
这可能是返回Prolog中列表长度的函数的最简单的实现。count([_|B], T) :- count(B, U), T is U + 1.关于Prolog,我仍然无法理解的一点是使用变量作为参数的灵活性。
例如,我可以运行count([a, b, c], 3).并获得true。奇怪的是(至少对我来说)我还可以运行count(X, 3).并得到至少一个结果,在