August 23, 2024

P16 - Drop every Nth element from a list.

Example:

> p16:drop(3, [1,2,3,4,5,6,7,8]).
    [1,2,4,5,7,8]

erlang

% Drop every Nth element from a list.
-module(p16).
-export([drop/2]).

drop(N, Ls) ->
    dropI(N, N, Ls).


dropI(1, Counter, [_ | Tail]) ->
    dropI(Counter, Counter, Tail);

dropI(1, _, Ls) ->
    Ls;

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