Funs with variable arity?
Manfred Widera
Manfred.Widera@REDACTED
Wed Jul 28 10:55:08 CEST 2004
Hi Erlang Experts,
does anybody know a way of writing a function that generates funs of
variable arity, e.g.
fun_generator(Code, Arity) -> ...
such that the following code fragments both work
-----------------------------------------
F1 = fun_generator(Something, 1),
F1(Arg).
-----------------------------------------
F5 = fun_generatot(SomethingElse, 5),
F5(A1, A2, A3, A4, A5).
-----------------------------------------
One brute force (and very ugly) method is to enumerate all needed arities
up to a sufficient threshold, e.g.
************************************
fun_generator(Code, 0) -> fun() -> ... end;
fun_generator(Code, 1) -> fun(A1) -> ... end;
fun_generator(Code, 2) -> fun(A1, A2) -> ... end;
...
fun_generator(Code, 42) -> fun(A1, ..., A42) -> ... end.
************************************
Is there a better solution?
It is not sufficient for me to have a fun of arity 1, and to provide a
list of the arguments, because I want to inspect parse results of funs,
and to return a fun that behaves identically in the runtime system
(especially regarding the arity).
Manfred
More information about the erlang-questions
mailing list