Sha256: 248f77169902911576f05a4ed5c8e213c9f996160741a9fe4bf545f9c15645e3

Contents?: true

Size: 852 Bytes

Versions: 295

Compression:

Stored size: 852 Bytes

Contents

-module(example).
-export([convert/3, test_version/0]).

convert(_Input, SrcBase, _DstBase) when SrcBase < 2 ->
  {error, invalid_src_base};
convert(_Input, _SrcBase, DstBase) when DstBase < 2 ->
  {error, invalid_dst_base};
convert(Input, SrcBase, DstBase) ->
  case internalize(Input, SrcBase, 0) of
    {ok, Value} -> externalize(Value, DstBase, []);
    {error, Reason} -> {error, Reason}
  end.

test_version() ->
  1.



internalize([], _, Acc) ->
  {ok, Acc};
internalize([H|_], _Base, _Acc) when H < 0 ->
  {error, negative};
internalize([H|_], Base, _Acc) when H >= Base ->
  {error, not_in_base};
internalize([H|T], Base, Acc) ->
  internalize(T, Base, Acc * Base + H).

externalize(0, _Base, Acc) ->
  {ok, Acc};
externalize(Input, Base, Acc) ->
  Digit = Input rem Base,
  Input2 = Input div Base,
  externalize(Input2, Base, [Digit|Acc]).

Version data entries

295 entries across 295 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.179 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.178 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.177 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.176 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.175 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.174 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.173 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.172 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.171 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.170 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.169 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.167 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.166 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.165 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.164 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.163 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.162 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.161 tracks/erlang/exercises/all-your-base/src/example.erl
trackler-2.2.1.160 tracks/erlang/exercises/all-your-base/src/example.erl