gpt4 book ai didi

列表长度,插入元素

转载 作者:行者123 更新时间:2023-12-05 00:00:34 27 4
gpt4 key购买 nike

我正在尝试在 Prolog 中编写一个程序,它将一个元素插入到某个位置,例如

?- ins(a, [1,2,3,4,5], 3, X).
X = [1,2,a,3,4,5].

我有以下代码:
ins(X,[H|T],P,OUT) :-
length([T3],P),
concatenate(X,[H],T),
ins(...).

问题是它正在插入元素 X在后面的给定索引中(我什至知道问题出在哪里 -> length([T3],P),这显然是从后面而不是从头开始的列表的长度)。我试图记住我切断并插入了多少元素 X当“截断元素的数量”= P ,但我真的不能在 Prolog 中写出来。有任何想法吗?

最佳答案

% ins(Val,List,Pos,Res)

ins(Val,[H|List],Pos,[H|Res]):- Pos > 1, !,
Pos1 is Pos - 1, ins(Val,List,Pos1,Res).
ins(Val, List, 1, [Val|List]).

如果 Pos = 0 或 Pos > length(List) + 1,则谓词失败

关于列表长度,插入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10063516/

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