gpt4 book ai didi

Prolog:从列表器中删除高于 X 的所有元素

转载 作者:行者123 更新时间:2023-12-04 06:07:44 25 4
gpt4 key购买 nike

我正在尝试编写一个 prolog 程序,该程序将删除列表中高于值 X 的所有元素。 .

例如,我想删除所有高于 50 的元素从这个列表:

[2,8,18,34,40,44,46,51,52,54,64,66,76,90]

所以我得到:
[2,8,18,34,40,44,46]

最佳答案

很高兴看到你已经走了多远。什么给你带来了问题?

大多数这些问题的想法通常是这样的:

  • 构建一个基本情况,通常是空列表。
  • 尝试递归到递归的底部和途中,
    只保留所需的元素。在这里,保持意味着你递归
    删除不需要的元素。
  • 为了让它正确地“重新增长”,例如,当递归
    返回,您必须正确定义输出列表。

  • 有两种方法可以做到这一点。要么在下降时删除元素,要么在返回时忽略它们。这些在本质上是一样的。

    我不是最擅长解释这个的。我将简单地发布我的解决方案。但我强烈建议你在看之前尽力而为。 :)
    delete_gt([], _, []) :- !.
    delete_gt([Head|Rest], X, L) :-
    Head > X, !,
    delete_gt(Rest, X, L).
    delete_gt([Head|Rest], X, [Head|L]) :-
    delete_gt(Rest, X, L).

    关于Prolog:从列表器中删除高于 X 的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8158081/

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