リストを追加していますが、使用するMyArray|MyElement
と画面に印刷され、次のようになります。
[obj1,obj2] | obj3
どちらが正しくありませんか。理想的には、次のようになりたいです。
[オブジェクト 1、オブジェクト 2、オブジェクト 3]
MyArray|[MyElement]
印刷を使用すると、次のようになります。
[オブジェクト 1、オブジェクト 2] | [対象3]
これは [Obj1,Obj2,Obj3] と同等ですか?
リストを追加していますが、使用するMyArray|MyElement
と画面に印刷され、次のようになります。
[obj1,obj2] | obj3
どちらが正しくありませんか。理想的には、次のようになりたいです。
[オブジェクト 1、オブジェクト 2、オブジェクト 3]
MyArray|[MyElement]
印刷を使用すると、次のようになります。
[オブジェクト 1、オブジェクト 2] | [対象3]
これは [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).
そして分割のために:
split(L、N、L1、L2):-リストL1にはリストLの最初のN個の要素が含まれ、リストL2には残りの要素が含まれます。(リスト、整数、リスト、リスト)(?、+、?、?)
split(L,0,[],L).
split([X|Xs],N,[X|Ys],Zs) :- N > 0, N1 is N - 1, split(Xs,N1,Ys,Zs).