[erlang-questions] How to wrap a function of any arity
Ludovic Coquelle
<>
Fri Nov 17 17:24:23 CET 2006
Sorry I did not give a good explanation of what I try to do. I would like to
write the function "wrap_fun" so that I can call it with different inner
functions. Let say I have different functions:
compute_one/1
compute_two/2
I would like to be able to write:
Log_compute_one = wrap_fun(compute_one, logger),
Log_compute_two = wrap_fun(compute_two, logger).
On 11/18/06, t ty <> wrote:
>
> Unfortunately I'm not very sure what you need. You can always encode
> all the params into a list also funs can also take multi params
>
> wrap_fun(Fun, Pid) ->
> fun(One, Two, Three) ->
> Res = Fun(One, Two, Three)
> Pid ! Res
> end.
>
> t
>
> On 11/17/06, Ludovic Coquelle <> wrote:
> > I would like to wrap a function into another which send the the result
> of
> > the inner function to some external process.
> > Let say I have a function called "compute" and a log process "logger": I
> > want to create a new function with something like:
> >
> > Log_compute = wrap_fun(compute, logger).
> >
> > wrap_fun(Fun, Pid) ->
> > fun(AllArgs) ->
> > Res = Fun(AllArgs),
> > Pid ! Res
> > end.
> >
> > But I don't know how to do that with a function of any arity (the code
> above
> > work only for function of arity 1).
> > Is this do-able? if not, how should I do?
> >
> >
> > _______________________________________________
> > erlang-questions mailing list
> >
> > http://www.erlang.org/mailman/listinfo/erlang-questions
> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20061118/e3bddc04/attachment.html>
More information about the erlang-questions
mailing list