Tag: 失败 切片

Prolog后继符号产生不完整的结果和无限循环

我开始学习Prolog,并首先了解后继符号。 这是我在Prolog中写皮纳诺公理的地方。 见PDF第12页: sum(0, M, M). sum(s(N), M, s(K)) :- sum(N,M,K). prod(0,M,0). prod(s(N), M, P) :- prod(N,M,K), sum(K,M,P). 我把乘法规则放到Prolog中。 然后我做这个查询: ?- prod(X,Y,s(s(s(s(s(s(0))))))). 这意味着基本上find6的因素。 这是结果。 X = s(0), Y = s(s(s(s(s(s(0)))))) ? ; X = s(s(0)), Y = s(s(s(0))) ? ; X = s(s(s(0))), Y = s(s(0)) ? ; infinite loop 这个结果有两个问题: 不是所有的结果都显示出来,注意结果X = 6,Y = […]