gpt4 book ai didi

recursion - 在序言中使用递归 append

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

假设我想通过一个接一个地 append 另一个列表(L)的元素来构造一个列表(L2)。结果应该与输入完全相同。
这个任务很傻,但它会帮助我理解如何通过列表递归并删除某些元素。

我整理了以下代码:

create(L, L2) :- (\+ (L == []) -> L=[H|T], append([H], create(T, L2), L2);[]).

通过调用它
create([1,2,3,4], L2)

返回
L2 = [1|create([2,3,4], **)\.

这不是预期的结果。

最佳答案

你说你想了解 prolog 是如何工作的,所以我不会给你一个完整的解决方案,而是一个提示。

prolog 中的函数不返回值,它们只是创建绑定(bind)。

当你说

append([H], create(T, L2), L2);[]).

您正在尝试使用返回值。

尝试让您在递归调用中使用的 append 创建绑定(bind)。

关于recursion - 在序言中使用递归 append ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2534904/

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