2

リストを追加していますが、使用するMyArray|MyElementと画面に印刷され、次のようになります。

[obj1,obj2] | obj3

どちらが正しくありませんか。理想的には、次のようになりたいです。

[オブジェクト 1、オブジェクト 2、オブジェクト 3]

MyArray|[MyElement]印刷を使用すると、次のようになります。

[オブジェクト 1、オブジェクト 2] | [対象3]

これは [Obj1,Obj2,Obj3] と同等ですか?

4

3 に答える 3

2

構文を使用すると、次の[ MyElement | MyArray ]ようになります

[Obj3, Obj1, Obj2]

これは、要素をリストに「コンシング」することとして知られています。append/3次のように、述語を使用することもできます。

append( MyArray, [MyElement], X).

生産する

X = [Obj1, Obj2, Obj3]
于 2012-08-12T16:33:07.543 に答える
1

リストの最後に追加していて、テールは常に配列であるため、それを理解しました....

于 2012-08-12T16:32:08.393 に答える
0

私はあなたの質問を理解しているかどうかわかりませんが、私は助けようとします。

それがあなたのために働くならば、これを試してください:

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).
于 2012-08-17T17:50:15.647 に答える