Packages

A markup language to define ER schemas

Current section

Files

Jump to
prequel src prequel@internals@extra@list.erl
Raw

src/prequel@internals@extra@list.erl

-module(prequel@internals@extra@list).
-compile([no_auto_import, nowarn_unused_vars]).
-export([map_pairs/2, duplicates/2]).
-spec map_pairs(list({HKL, HKM}), fun((HKL, HKM) -> HKO)) -> list(HKO).
map_pairs(List, Fun) ->
gleam@list:map(
List,
fun(Pair) -> Fun(erlang:element(1, Pair), erlang:element(2, Pair)) end
).
-spec duplicates(list(HKQ), fun((HKQ) -> any())) -> list({HKQ,
non_empty_list:non_empty_list(HKQ)}).
duplicates(List, Fun) ->
_pipe = gleam@list:group(List, Fun),
_pipe@1 = gleam@map:values(_pipe),
gleam@list:filter_map(_pipe@1, fun(Entities) -> case Entities of
[One, Two | More] ->
{ok, {One, non_empty_list:new(Two, More)}};
_ ->
{error, nil}
end end).