Prolog列表和内部变量

时间:2016-05-01 18:24:25

标签: list recursion prolog

我创建了一个通过迷宫找到路径的谓词,这个谓词使用递归和五个参数,其中一个是返回找到的路径的列表,一切正常,找到正确的路径但是当返回一个列表,随之返回一个Prolog内部变量。

?- maze(X).
X = [start,x,z,s,r,p,q,l,m,w,d,r,l,s,a,t,c,i,d,b,j,k,g|_G2612] .

第一个节点是'start',最后一个节点是'g'。

示例代码:

maze(X) :-
    path(start,colour,g,[],X).

path(From, Colour, To, Visited, [From,To|_]) :-
    connect(From, Colour, To).
path(From, Colour, To, Visited, [From|Route]) :-
    connect(From, Colour, By),
    path(By, Colour2, To, Visited2,Route).

我删除了谓词中不影响问题的步骤,因为这是一个必须使用其他变量找到路径的赋值。

0 个答案:

没有答案