我有一个简单的prolog程序,它应该写一个选定的数字的所有因素。然而,我开始觉得我永远学不会prolog了。我就是不明白程序是怎么工作的。代码如下。
deli(X):-
deli(X,1).
deli(X,X):-
write(X),nl.
deli(X,N):-
Z is X mod N,
Z==0,
write(N),nl,
N1 is N+1,
deli(X,N1).
deli(X,N):-
N1 is N+1,
deli(X,N1).发布于 2017-01-08 21:46:02
deli/2对计数器N进行计数(从deli/1调用时最初设置为1),如果它等于给定的数字X (第一个子句),或者如果它干净利落地除以X (第二个子句),则输出其值。在后一种情况下,它递增N并继续搜索下一个因子。
然后,它回溯并进入无限循环。
https://stackoverflow.com/questions/41527558
复制相似问题