Request arity directly.
[hope.git] / src / hope_fun.erl
1 -module(hope_fun).
2
3 -export(
4 [ id/1
5 , curry/1
6 ]).
7
8 -spec id(A) ->
9 A.
10 id(X) ->
11 X.
12
13 -spec curry(fun()) ->
14 fun().
15 curry(F) ->
16 {arity, Arity} = erlang:fun_info(F, arity),
17 curry(F, [], Arity).
18
19 -spec curry(fun(), list(), integer()) ->
20 fun().
21 curry(F, Args, 0) ->
22 apply(F, lists:reverse(Args));
23 curry(F, Args, Arity) ->
24 fun (X) -> curry(F, [X | Args], Arity - 1) end.
This page took 0.047071 seconds and 4 git commands to generate.