gpt4 book ai didi

Prolog - 通过让步获得不同的结果

转载 作者:行者123 更新时间:2023-12-02 05:46:52 26 4
gpt4 key购买 nike

我正在尝试编写一个序言程序,该程序需要有一个谓词,该谓词每次调用时都会返回最小变量。但我需要它的方式是,如果你产生该函数,它应该返回下一个最小值。例如:

min([5,3,2,7],B).
B = 2 ;
B = 3 ;
B = 5 ;
B = 7 ;
false.

有什么想法吗?

最佳答案

min(L, Min) :- sort(L, S), member(Min, S).

适用于您的示例数据。更一般地说,setof/3 将允许为通用目标构建一个排序的解决方案列表。

编辑:无需排序,基于 select 的有点复杂的解决方案/3:

min(L, M) :-
select(T, L, R),
( maplist('<'(T), R), (M = T ; min(R, M)) ).

产量

?- min([2,6,1],X).
X = 1 ;
X = 2 ;
X = 6 ;
false.

关于Prolog - 通过让步获得不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16913309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com