Current section
Files
Jump to
Current section
Files
src/zipnotic.erl
-module(zipnotic).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([zip_2/2, strict_zip_2/2, zip_3/3, strict_zip_3/3, zip_4/4, strict_zip_4/4, pop/1, zip_longest_2/2, zip_longest_3/3, zip_longest_4/4]).
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 33).
-spec zip_2(list(FVB), list(FVD)) -> list({FVB, FVD}).
zip_2(List, Other) ->
_pipe = List,
gleam@list:zip(_pipe, Other).
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 43).
-spec strict_zip_2(list(FVG), list(FVI)) -> {ok, list({FVG, FVI})} |
{error, nil}.
strict_zip_2(List, Other) ->
_pipe = List,
gleam@list:strict_zip(_pipe, Other).
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 86).
-spec do_zip_3(list(FWS), list(FWU), list(FWW), list({FWS, FWU, FWW})) -> list({FWS,
FWU,
FWW}).
do_zip_3(List, Other_1, Other_2, Acc) ->
case {List, Other_1, Other_2} of
{[A | A_rest], [B | B_rest], [C | C_rest]} ->
do_zip_3(A_rest, B_rest, C_rest, [{A, B, C} | Acc]);
{_, _, _} ->
_pipe = Acc,
lists:reverse(_pipe)
end.
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 78).
-spec zip_3(list(FWL), list(FWN), list(FWP)) -> list({FWL, FWN, FWP}).
zip_3(List, Other_1, Other_2) ->
do_zip_3(List, Other_1, Other_2, []).
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 113).
-spec do_strict_zip_3(list(FXJ), list(FXL), list(FXN), list({FXJ, FXL, FXN})) -> {ok,
list({FXJ, FXL, FXN})} |
{error, nil}.
do_strict_zip_3(List, Other_1, Other_2, Acc) ->
case {List, Other_1, Other_2} of
{[], [], []} ->
{ok,
begin
_pipe = Acc,
lists:reverse(_pipe)
end};
{[], _, _} ->
{error, nil};
{_, [], _} ->
{error, nil};
{_, _, []} ->
{error, nil};
{[A | A_rest], [B | B_rest], [C | C_rest]} ->
do_strict_zip_3(A_rest, B_rest, C_rest, [{A, B, C} | Acc])
end.
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 105).
-spec strict_zip_3(list(FXA), list(FXC), list(FXE)) -> {ok,
list({FXA, FXC, FXE})} |
{error, nil}.
strict_zip_3(List, Other_1, Other_2) ->
do_strict_zip_3(List, Other_1, Other_2, []).
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 169).
-spec do_zip_4(
list(FZH),
list(FZJ),
list(FZL),
list(FZN),
list({FZH, FZJ, FZL, FZN})
) -> list({FZH, FZJ, FZL, FZN}).
do_zip_4(List, Other_1, Other_2, Other_3, Acc) ->
case {List, Other_1, Other_2, Other_3} of
{[A | A_rest], [B | B_rest], [C | C_rest], [D | D_rest]} ->
do_zip_4(A_rest, B_rest, C_rest, D_rest, [{A, B, C, D} | Acc]);
{_, _, _, _} ->
_pipe = Acc,
lists:reverse(_pipe)
end.
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 160).
-spec zip_4(list(FYY), list(FZA), list(FZC), list(FZE)) -> list({FYY,
FZA,
FZC,
FZE}).
zip_4(List, Other_1, Other_2, Other_3) ->
do_zip_4(List, Other_1, Other_2, Other_3, []).
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 198).
-spec do_strict_zip_4(
list(GAC),
list(GAE),
list(GAG),
list(GAI),
list({GAC, GAE, GAG, GAI})
) -> {ok, list({GAC, GAE, GAG, GAI})} | {error, nil}.
do_strict_zip_4(List, Other_1, Other_2, Other_3, Acc) ->
case {List, Other_1, Other_2, Other_3} of
{[], [], [], []} ->
{ok,
begin
_pipe = Acc,
lists:reverse(_pipe)
end};
{[], _, _, _} ->
{error, nil};
{_, [], _, _} ->
{error, nil};
{_, _, [], _} ->
{error, nil};
{_, _, _, []} ->
{error, nil};
{[A | A_rest], [B | B_rest], [C | C_rest], [D | D_rest]} ->
do_strict_zip_4(
A_rest,
B_rest,
C_rest,
D_rest,
[{A, B, C, D} | Acc]
)
end.
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 189).
-spec strict_zip_4(list(FZR), list(FZT), list(FZV), list(FZX)) -> {ok,
list({FZR, FZT, FZV, FZX})} |
{error, nil}.
strict_zip_4(List, Other_1, Other_2, Other_3) ->
do_strict_zip_4(List, Other_1, Other_2, Other_3, []).
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 214).
-spec pop(list(GAO)) -> {gleam@option:option(GAO), list(GAO)}.
pop(List) ->
case List of
[] ->
{none, []};
[A | Rest] ->
{{some, A}, Rest}
end.
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 17).
-spec do_zip_longest_2(
list(FUR),
list(FUT),
list({gleam@option:option(FUR), gleam@option:option(FUT)})
) -> list({gleam@option:option(FUR), gleam@option:option(FUT)}).
do_zip_longest_2(List, Other, Acc) ->
case {pop(List), pop(Other)} of
{{none, _}, {none, _}} ->
_pipe = Acc,
lists:reverse(_pipe);
{{A, A_rest}, {B, B_rest}} ->
do_zip_longest_2(A_rest, B_rest, [{A, B} | Acc])
end.
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 10).
-spec zip_longest_2(list(FUK), list(FUM)) -> list({gleam@option:option(FUK),
gleam@option:option(FUM)}).
zip_longest_2(List, Other) ->
do_zip_longest_2(List, Other, []).
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 61).
-spec do_zip_longest_3(
list(FVX),
list(FVZ),
list(FWB),
list({gleam@option:option(FVX),
gleam@option:option(FVZ),
gleam@option:option(FWB)})
) -> list({gleam@option:option(FVX),
gleam@option:option(FVZ),
gleam@option:option(FWB)}).
do_zip_longest_3(List, Other_1, Other_2, Acc) ->
case {pop(List), pop(Other_1), pop(Other_2)} of
{{none, _}, {none, _}, {none, _}} ->
_pipe = Acc,
lists:reverse(_pipe);
{{A, A_rest}, {B, B_rest}, {C, C_rest}} ->
do_zip_longest_3(A_rest, B_rest, C_rest, [{A, B, C} | Acc])
end.
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 53).
-spec zip_longest_3(list(FVN), list(FVP), list(FVR)) -> list({gleam@option:option(FVN),
gleam@option:option(FVP),
gleam@option:option(FVR)}).
zip_longest_3(List, Other_1, Other_2) ->
do_zip_longest_3(List, Other_1, Other_2, []).
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 142).
-spec do_zip_longest_4(
list(FYG),
list(FYI),
list(FYK),
list(FYM),
list({gleam@option:option(FYG),
gleam@option:option(FYI),
gleam@option:option(FYK),
gleam@option:option(FYM)})
) -> list({gleam@option:option(FYG),
gleam@option:option(FYI),
gleam@option:option(FYK),
gleam@option:option(FYM)}).
do_zip_longest_4(List, Other_1, Other_2, Other_3, Acc) ->
case {pop(List), pop(Other_1), pop(Other_2), pop(Other_3)} of
{{none, _}, {none, _}, {none, _}, {none, _}} ->
_pipe = Acc,
lists:reverse(_pipe);
{{A, A_rest}, {B, B_rest}, {C, C_rest}, {D, D_rest}} ->
do_zip_longest_4(
A_rest,
B_rest,
C_rest,
D_rest,
[{A, B, C, D} | Acc]
)
end.
-file("/Users/josephlyons/Projects/Personal/gleam/zipnotic/src/zipnotic.gleam", 133).
-spec zip_longest_4(list(FXT), list(FXV), list(FXX), list(FXZ)) -> list({gleam@option:option(FXT),
gleam@option:option(FXV),
gleam@option:option(FXX),
gleam@option:option(FXZ)}).
zip_longest_4(List, Other_1, Other_2, Other_3) ->
do_zip_longest_4(List, Other_1, Other_2, Other_3, []).