使用Prolog中的增量器跟踪每个递归调用

时间:2015-12-02 03:53:23

标签: recursion prolog increment

我正在尝试通过每个递归调用将变量M递增1

我一直在尝试解决这个问题,但是我的论点没有得到充分的实例化。'查询时。我有一个基本情况,我反复增加使用两个变量,以存储旧值并统一新值。

point(a,b).
point(a,c).
point(b,d).
point(c,d).
point(d,e).
point(f,g).

linkup(Point,Point,0).
linkup(Point1,Point2,Count) :-
   Counthelp is Count+1,
   point(Point1,Link),  
   linkup(Link,Point2,Counthelp).

1 个答案:

答案 0 :(得分:0)

我认为这就是你所需要的:

linkup(Point1,Point2,0) :- point(Point1,Point2).
linkup(Point1,Point2,Counthelp) :-
    point(Point1,Link),
    linkup(Link,Point2,Count),
    Counthelp is Count+1.

你必须确保你认为“Prologishly”。 Counthelp变量是输出,因此您必须将其传递出去而不将其传入。还需要最后计算,以便Count已经统一。