如何在prolog中创建结果列表?

时间:2017-12-09 20:27:57

标签: prolog

我写了一个成本计算器,成本可以超过相同输入的一个值,所以我需要找到最低成本。计算器正在运行,但是我无法将其放入列表中并找到列表的最小值,我该怎么办呢? 这是我的计算器,

cal(X,Y,CLIST) :- calcualtor(X,Y,C).
calcualtor(X,Y,C ) :- calculate_cost(X,Z,A), calcualtor(Z,Y,B),C is A+B.
calcualtor(X,Y,C) :-  calculate_cost(X,Y,C).

当我致电cal(A,B,X)时,它会X = 7,然后当我按下&#34 ;;"当我按下&#34 ;;"然后它会X = 5。它给出了X = 14等等。

我想[7,5,14,..]然后找到列表的最小值。

注意:我无法使用swi库函数

1 个答案:

答案 0 :(得分:0)

为什么需要清单?你正在寻找最低限度。也就是说,寻找一个的值,使另一个值更大。显式否定 - 称为\+ - 是迫使Prolog评估替代绑定的关键。