gpt4 book ai didi

prolog - 在 Prolog 中用一个一个替换另一个列表的每个实例

转载 作者:行者123 更新时间:2023-12-01 15:08:49 25 4
gpt4 key购买 nike

所以我有一个程序应该用另一个元素替换列表中元素的每个实例,但一个一个地替换。

例如

change_element(5,[1,5,9,12,5,6],3,X). should give 
X = [1,3,9,12,5,6] and
X = [1,5,9,12,3,6]

所以它将第一个 5 替换为 3,然后在第二个输出中,第一个 5 仍然是 5,第二个变为 3。

我能够实现更改第一个元素的代码,但代码在此之后终止。不会转到第二个元素。

change_element(A,[A|As],B,[B|As]).
change_element(A,[E|As],B,[E|Bs]):-
dif(A, E),
change_element(A,As,B,Bs).

有什么想法吗?我应该采取哪些不同的措施来获得预期的结果?

最佳答案

在匹配后继续,保留旧元素:

change_element(A,[A|As],B,[B|As]).
change_element(A,[A|As],B,[A|Bs]):-
change_element(A,As,B,Bs).
change_element(A,[E|As],B,[E|Bs]):-
dif(A, E),
change_element(A,As,B,Bs).

关于prolog - 在 Prolog 中用一个一个替换另一个列表的每个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50072712/

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