[erlang-questions] Functions with same name and varying arity using apply

Dirk Scharff <>
Thu Jan 20 00:31:33 CET 2011


Hi Taylor,

I don't get what you want to do. 
From your example I assume that you want to apply a function (in your case addition) to each element of a list?
You could to the same calculation as follows:
lists:map(fun(X)->lists:sum(X) end,[[1],[2,3]]).

However I'm not sure if I got your question and if this is helpful at all. 

Regards,
Dirk.

Am 20.01.2011 um 00:03 schrieb Taylor Venable:

> Hi there, is the following possible in Erlang? If I use the following code:
> 
> %% test.erl
> 
> -module(test).
> -export([foo/1,foo/2,bar/2]).
> 
> foo(A) -> A.
> foo(A, B) -> A + B.
> 
> bar(_, []) -> [];
> bar(F, [X|Xs]) -> [apply(test, F, X) | bar(F, Xs)].
> 
> %% END
> 
> 2> test:bar(foo, [[1], [2,3]]).
> [1,5]
> 
> Is there a way to do the same thing without exporting foo/1 and foo/2?
> It seems not with apply/3, but maybe some technique with apply/2, or
> another way? Thanks for any ideas.
> 
> -- 
> Taylor C. Venable
> http://metasyntax.net/
> 
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:
> 



More information about the erlang-questions mailing list