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).