Files
Vanillae/docs/baseN/itl.erl
T
2023-03-27 12:09:38 -06:00

23 lines
534 B
Erlang

-module(itl).
-compile([export_all, nowarn_export_all]).
%% Base 1 makes no sense
digits(N, Base) when N > 0, Base > 1 ->
digits(N, Base, []);
%% have to handle 0 specially because digits/3 will return [] in this case
digits(0, _Base) ->
[0].
%% general case
digits(N, Base, DigitsAcc) when N > 0 ->
Q = N div Base,
R = N rem Base,
NewN = Q,
NewDigitsAcc = [R | DigitsAcc],
digits(NewN, Base, NewDigitsAcc);
%% terminate when N = 0
digits(0, _Base, Digits) ->
Digits.