List 列出添加元素(和拆分)
我正在添加一个列表,当我使用List 列出添加元素(和拆分),list,List,我正在添加一个列表,当我使用MyArray | MyElement时,我打印到屏幕上,得到: [obj1,obj2]| obj3 哪个不正确,是吗?理想情况下,我希望它是: [Obj1、Obj2、Obj3] 如果我使用MyArray |[MyElement]打印出来会给我: [Obj1,Obj2]|[Obj3] 这是否等同于[Obj1,Obj2,Obj3]?解决了这个问题,这是因为我在列表末尾添加了一个后缀,而尾部始终是一个数组 使用语法[MyElement | MyArray],您将得到 [O
MyArray | MyElement
时,我打印到屏幕上,得到:
[obj1,obj2]| obj3
哪个不正确,是吗?理想情况下,我希望它是:
[Obj1、Obj2、Obj3]
如果我使用MyArray |[MyElement]
打印出来会给我:
[Obj1,Obj2]|[Obj3]
这是否等同于[Obj1,Obj2,Obj3]?解决了这个问题,这是因为我在列表末尾添加了一个后缀,而尾部始终是一个数组 使用语法
[MyElement | MyArray]
,您将得到
[Obj3, Obj1, Obj2]
这就是所谓的“考虑”列表中的元素。您还可以使用append/3
谓词,如下所示:
append( MyArray, [MyElement], X).
产生
X = [Obj1, Obj2, Obj3]
我不知道我是否理解你的问题,但我会尽力帮助你 如果适合您,请尝试以下方法:
add2end(X,[],[X]).
add2end(X,[H|T],[H|NewT]):-add2end(X,T,NewT).
对于拆分:
拆分(L,N,L1,L2):-列表L1包含前N个元素
在列表L中,列表L2包含其余元素。
(列表,整数,列表,列表)(?,+,?,?)
split(L,0,[],L).
split([X|Xs],N,[X|Ys],Zs) :- N > 0, N1 is N - 1, split(Xs,N1,Ys,Zs).