如何在另一个谓词序言中一个一个地传递列表的值

时间:2020-11-11 09:43:39

标签: prolog

这是我的prologdb文件

trip_to_nation(X,Y,T):- % X is a city ,T is a list
      list_airport(Y,A),
      write(A),% [dublin,cork] list 
      all_trip(X,A,T). % here A is an atom and T is the list

我想将列表的值一一传递给all_trip以获取数据,怎么可能?

类似list[0],list[1]并获取列表中的数据。谢谢

1 个答案:

答案 0 :(得分:3)

现在T将拥有从X到A元素的所有行程。

maplist(all_trip(X), A, T).

如果您希望将旅程作为多种解决方案,而不是全部解决方案的列表,则可以使用以下方法。

member(City, A), all_trip(X, City, T).