gpt4 book ai didi

prolog - 返回最小值或小于特定数字 - prolog

转载 作者:行者123 更新时间:2023-12-02 02:13:00 24 4
gpt4 key购买 nike

问题要求我们编写 Prolog,如果列表中没有元素L小于A,当M为A时满足;否则满足当 M是列表 L 的最小值

minLessThan([],A,A).
minLessThan([H|T], A, M) :-
H >= A,
M is A,
minLessThan(T, A, M).
minLessThan([H|T], A, M) :-
H < A,
M is H,
minLessThan(T, A, M).

现在,我的结果对句子的第一部分有效,但是当 M 是列表 L 的最小值时它一直返回 false,我假设问题发生在列表 L 为空时,它返回A,有什么办法解决这个问题吗?

最佳答案

因为这是作业,所以我只会给你一些建议:

对于你正在尝试做的事情,你不应该在递归步骤之前在第二个和第三个子句中实例化 M。也就是说,您不必将 M is AM is H 放在一起,因为 M 将在基本情况(第一个子句)中实例化。

此外,第三个子句中的递归调用应该使用 H 而不是 A 作为第二个参数,因为您找到了小于当前最小值的项目。

注意 minLessThan 的第二个参数可以读作“找到的当前最小值”,因此您应该调用该过程给一些初始值,否则会出现实例化错误。

关于prolog - 返回最小值或小于特定数字 - prolog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11966638/

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