如何编写序言中使用回溯列出范围内所有数字的谓词?

时间:2019-03-06 21:18:38

标签: prolog backtracking

我想列出x,y范围内的所有数字。例如 elements_between(1,3,Res).将给出Res=1,Res=2,Res=3。我想使用回溯,并且我认为范围是正确的,所以x <= y。

我尝试过:

elements_between(X,X,X).
elements_between(X,Y,Res):- add_ints(X,1,NewX),elements_between(NewX,Y,Res).

add_ints(X,Y,Res):- Res is X+Y.

但是它仅列出范围中的最后一个元素,然后进入无限循环,似乎崩溃了GNU。

0 个答案:

没有答案