Current section

Files

Jump to
gleam_stdlib gen src gleam@function.erl
Raw

gen/src/gleam@function.erl

-module(gleam@function).
-compile(no_auto_import).
-export([compose/2, curry2/1, curry3/1, curry4/1, curry5/1, curry6/1, flip/1, identity/1, rescue/1]).
-export_type([exception/0]).
-type exception() :: {exited, gleam@dynamic:dynamic()} |
{thrown, gleam@dynamic:dynamic()} |
{errored, gleam@dynamic:dynamic()}.
-spec compose(fun((FMZ) -> FNA), fun((FNA) -> FNB)) -> fun((FMZ) -> FNB).
compose(Fun1, Fun2) ->
fun(A) -> Fun2(Fun1(A)) end.
-spec curry2(fun((FNC, FND) -> FNE)) -> fun((FNC) -> fun((FND) -> FNE)).
curry2(Fun) ->
fun(A) -> fun(B) -> Fun(A, B) end end.
-spec curry3(fun((FNG, FNH, FNI) -> FNJ)) -> fun((FNG) -> fun((FNH) -> fun((FNI) -> FNJ))).
curry3(Fun) ->
fun(A) -> fun(B) -> fun(C) -> Fun(A, B, C) end end end.
-spec curry4(fun((FNL, FNM, FNN, FNO) -> FNP)) -> fun((FNL) -> fun((FNM) -> fun((FNN) -> fun((FNO) -> FNP)))).
curry4(Fun) ->
fun(A) -> fun(B) -> fun(C) -> fun(D) -> Fun(A, B, C, D) end end end end.
-spec curry5(fun((FNR, FNS, FNT, FNU, FNV) -> FNW)) -> fun((FNR) -> fun((FNS) -> fun((FNT) -> fun((FNU) -> fun((FNV) -> FNW))))).
curry5(Fun) ->
fun(A) ->
fun(B) ->
fun(C) -> fun(D) -> fun(E) -> Fun(A, B, C, D, E) end end end
end
end.
-spec curry6(fun((FNY, FNZ, FOA, FOB, FOC, FOD) -> FOE)) -> fun((FNY) -> fun((FNZ) -> fun((FOA) -> fun((FOB) -> fun((FOC) -> fun((FOD) -> FOE)))))).
curry6(Fun) ->
fun(A) ->
fun(B) ->
fun(C) ->
fun(D) -> fun(E) -> fun(F) -> Fun(A, B, C, D, E, F) end end end
end
end
end.
-spec flip(fun((FOG, FOH) -> FOI)) -> fun((FOH, FOG) -> FOI).
flip(Fun) ->
fun(B, A) -> Fun(A, B) end.
-spec identity(FOJ) -> FOJ.
identity(X) ->
X.
-spec rescue(fun(() -> FOK)) -> {ok, FOK} | {error, exception()}.
rescue(A) ->
gleam_stdlib:rescue(A).