August 23, 2024

P17 - Split a list into two parts.

The length of the first part is given.

Example:

> p17:split(3, [1,2,3,4,5,6,7]).
    [[1,2,3],[4,5,6,7]]

erlang

%Split a list into two parts.
-module(p17).
-export([split/2]).

split(N, Ls) ->
    splitI(N, [], Ls).

splitI(0, First, Last) ->
    [First, Last];

splitI(N, First, [H | T]) ->
    splitI(N - 1, First ++ [H], T).
Be first to comment
Leave a reply