Packages

I am playing with publishing a package.

Current section

Files

Jump to
playground src group_by_odds_and_evens.erl
Raw

src/group_by_odds_and_evens.erl

-module(group_by_odds_and_evens).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([group_by_odds_and_evens/1]).
-file("/Users/bradleymehder/Developer/Frameworks/Gleam/playground/src/group_by_odds_and_evens.gleam", 18).
-spec format_list(list(integer())) -> binary().
format_list(Xs) ->
_pipe = Xs,
_pipe@1 = lists:reverse(_pipe),
_pipe@2 = gleam@list:map(_pipe@1, fun gleam@int:to_string/1),
gleam@string:join(_pipe@2, <<","/utf8>>).
-file("/Users/bradleymehder/Developer/Frameworks/Gleam/playground/src/group_by_odds_and_evens.gleam", 22).
-spec is_even(integer()) -> boolean().
is_even(X) ->
(X rem 2) =:= 0.
-file("/Users/bradleymehder/Developer/Frameworks/Gleam/playground/src/group_by_odds_and_evens.gleam", 11).
-spec folder({list(integer()), list(integer())}, integer()) -> {list(integer()),
list(integer())}.
folder(Acc, X) ->
case is_even(X) of
true ->
{erlang:element(1, Acc), [X | erlang:element(2, Acc)]};
false ->
{[X | erlang:element(1, Acc)], erlang:element(2, Acc)}
end.
-file("/Users/bradleymehder/Developer/Frameworks/Gleam/playground/src/group_by_odds_and_evens.gleam", 5).
-spec group_by_odds_and_evens(list(integer())) -> binary().
group_by_odds_and_evens(Numbers) ->
{Xs, Ys} = gleam@list:fold(Numbers, {[], []}, fun folder/2),
<<<<<<"Odds: "/utf8, (format_list(Xs))/binary>>/binary, ", Evens: "/utf8>>/binary,
(format_list(Ys))/binary>>.