Prolog - dividing list into n-elements sections

Viewed 2354

I have a predict which gets first N elements:

nfirst(N, _, Lnew) :- N =< 0, Lnew = [].
nfirst(_, [], []).
nfirst(N, [X|Y], [X|Y1]) :- N1 is N - 1, nfirst(N1, Y, Y1).

It works: % nfirst(3,[1,2,3,4,5,6],X). % X = [1, 2, 3]

I need a predict for divide list like below:

% divide([a,b,c,d,e,f,g,h],[3,2,1,2],X).
% X = [[a,b,c],[d,e],[f],[g,h]]

The best way is using nfirst.

1 Answers
Related