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((GLT) -> GLU), fun((GLU) -> GLV)) -> fun((GLT) -> GLV).
compose(Fun1, Fun2) ->
fun(A) -> Fun2(Fun1(A)) end.
-spec curry2(fun((GLW, GLX) -> GLY)) -> fun((GLW) -> fun((GLX) -> GLY)).
curry2(Fun) ->
fun(A) -> fun(B) -> Fun(A, B) end end.
-spec curry3(fun((GMA, GMB, GMC) -> GMD)) -> fun((GMA) -> fun((GMB) -> fun((GMC) -> GMD))).
curry3(Fun) ->
fun(A) -> fun(B) -> fun(C) -> Fun(A, B, C) end end end.
-spec curry4(fun((GMF, GMG, GMH, GMI) -> GMJ)) -> fun((GMF) -> fun((GMG) -> fun((GMH) -> fun((GMI) -> GMJ)))).
curry4(Fun) ->
fun(A) -> fun(B) -> fun(C) -> fun(D) -> Fun(A, B, C, D) end end end end.
-spec curry5(fun((GML, GMM, GMN, GMO, GMP) -> GMQ)) -> fun((GML) -> fun((GMM) -> fun((GMN) -> fun((GMO) -> fun((GMP) -> GMQ))))).
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((GMS, GMT, GMU, GMV, GMW, GMX) -> GMY)) -> fun((GMS) -> fun((GMT) -> fun((GMU) -> fun((GMV) -> fun((GMW) -> fun((GMX) -> GMY)))))).
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((GNA, GNB) -> GNC)) -> fun((GNB, GNA) -> GNC).
flip(Fun) ->
fun(B, A) -> Fun(A, B) end.
-spec identity(GND) -> GND.
identity(X) ->
X.
-spec rescue(fun(() -> GNE)) -> {ok, GNE} | {error, exception()}.
rescue(A) ->
gleam_stdlib:rescue(A).