我正在尝试编写一个规则,该规则通过事实数据库并将每个事实的数字加在一起并将其保存到列表中:具体而言,这是一个问题:
根据问题 5 的答案编写一条规则,返回/显示在两个站点之间的旅程需要多长时间。
对问题 5 的回答:
time(Station1,Station2) :- overground(Station1,Station2,Time),
overground(Station1,_,Time),
overground(_,Station1,Time).
time(Station2,Station1) :- overground(Station2,Station1,Time),
overground(Station2,_,Time),
overground(_,Station2,Time).
time(Station1,Station2) :- overground(Station1,Station3,Time),
time(Station3,Station2);
overground(Station1,Station3,Time),
time(Station2,Station3).
time(Station1,Station2) :- overground(Station1,_,Time),
overground(_,Station2,Time).
time(Station1,Station2) :- overground(Station2,_,Time),
overground(_,Station1,Time).
我尝试添加一个列表并将其附加“时间”,但没有运气。
*是的,它是一个分号。
还有另一个文件,其中包含所有地面站和时间,格式为“地上(X,Y,Z)”。即地上(肯顿,南肯顿,2)。其中显示了 station1、station2 以及从 1 到 2 所需的时间。
我正在尝试遍历整个数据库,找到 X 和 Y(问题 5 所做的),然后将两个站之间的所有 Z 相加并将它们放入一个列表中。