我试图做一个函数,将可变长度的列表按顺序分成三个长度均匀的列表。以下内容将其分成三部分,但进程会一次将它们插入到每个列表中。使用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