【发布时间】:2017-12-09 20:27:57
【问题描述】:
我确实写了一个成本计算器,成本可以是多个相同输入的值,所以我需要找到最低成本。计算器运行正常,但我无法放入列表并找到列表的最小值,我该怎么办? 这是我的计算器,
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,然后当我按下“;”时它给X
= 5 然后当我按“;”它给了X = 14etc。
我想[7,5,14,..]然后找到列表的最小值。
注意:我不能使用 swi 库函数
【问题讨论】:
-
findall(X,cal(A,B,X),Xs) -
哦,谢谢,但是我不能使用这个功能,它被禁止了。
-
那么我猜你将不得不使用数据库(
assert/1和retract/1)。 -
I can't use swi-library functions但你可以自己实现它们:D -
在此站点上搜索
[prolog] without findall。已经有很多关于各种主题的问题和答案。如果您有兴趣尝试一下,我相信您会找到一些有用的东西。
标签: prolog