Prolog中的列表不会以逗号打印

时间:2018-11-09 11:25:35

标签: list prolog

我有此代码:

route(X,Y,[X|Y]) :-
    road(X,Y).

route(X,Y,[X|R]) :-
    road(X,Z),
    route(Z,Y,R).


road(arad,timisoara).
road(arad,sibiu).
road(arad,zerind).
road(zerind,oradea).
road(sibiu,fagaras).
road(sibiu,rimnicu_vilcea).

当我运行它时,它会给我:

?- route(arad, fagaras, P).

P = [arad,sibiu|fagaras] ? 

yes

应该是:

P = [arad,sibiu,fagaras] ? 

在锡比乌之后加逗号,而不是酒吧。

1 个答案:

答案 0 :(得分:1)

在第一行中,写[X,Y]而不是[X|Y],后者希望Y是一个列表,在这里不是这种情况。