我試圖做一個函數,將可變長度的列表按順序分成三個長度均勻的列表。以下內容將其分成三部分,但進程會一次將它們插入到每個列表中。使用Prolog將單個列表拆分爲三個
的我想要的一個例子是:
[1, 2, 3, 4, 5] -> [1, 2], [3, 4], [5]
另一個例子是:
div([], [], [], []).
div([X], [X], [], []).
div([X,Y], [X], [Y], []).
div([X,Y,Z|End], [X|XEnd], [Y|YEnd], [Z|ZEnd]):-
div(End, XEnd, YEnd, ZEnd).
:
[8, 7, 6, 5, 4, 3, 2, 1] -> [8, 7, 6], [5, 4, 3], [2, 1].
下面的代碼通過一次插入到每個列表中的一個分裂他們
此代碼輸出:
[1, 2, 3, 4, 5] -> [1, 4], [2, 5], [3]
我該如何解決這個問題?
謝謝@false。我也明白你在這個問題之外想要告訴我什麼。 – Mocking 2016-04-15 05:26:27