gpt4 book ai didi

Prolog - 添加一些元素到同一个列表

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

我在 Prolog 的列表中添加元素时遇到问题。我使用这个规则:

add(X, L, [X|L]).

此规则在列表的头部添加一个元素。如果我将一些元素添加到同一个列表中,我会遇到这个问题:

add(a, L, L1),
add(b, L1,L2),
add(c, L2,L3).

L3= [a,b,c]

有没有一种方法可以在列表中添加元素而不更改变量名称...L1、L2、L3,而是将它们添加到单个变量 L?

最佳答案

简短的回答是否定的:L 必须代表不同的列表,这在 Prolog 中是错误的。

但是你可以这样实现:

add_list([], L, L).
add_list([H|T], L, L1) :- add(H, L2, L1), add_list(T, L, L2).

示例用法:

?- add_list([1,2,3],X,A).
A = [1, 2, 3|X].

?- add_list([1,2,3],X,A), writeln(A-X), add_list([4,5],Y,X).
[1,2,3|_G1188]-_G1188
X = [4, 5|Y],
A = [1, 2, 3, 4, 5|Y].

?- add_list([1,2,3],X,A), writeln(A-X), add_list([4,5],Y,X),Y=[].
[1,2,3|_G1224]-_G1224
X = [4, 5],
A = [1, 2, 3, 4, 5],
Y = [].

关于Prolog - 添加一些元素到同一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19449347/

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