[erlang-questions] Funs

Jeremy Ong <>
Mon Nov 26 09:27:34 CET 2012


Er note also that the "every_other" function is probably best implemented
as a list comprehension but I did it using foldr to illustrate the use of
anonymous functions in a fold. You should probably indent it nicer too haha.


On Mon, Nov 26, 2012 at 12:25 AM, Jeremy Ong <> wrote:

> Anonymous functions or lambdas are a basic building box in any functional
> programmer's toolbox. Examples of functions that take other anonymous
> functions in the standard library are lists:map, lists:foldl, lists:filter,
> and their analogs in the orddict library, sets library, etc. Of course, any
> of those parameters can be named functions as well but if the function is
> simple enough, an anonymous function is preferred for brevity (example,
> lists:map(fun(Elem) -> Elem * 2 end, List) doubles the value of all
> elements in List).
>
> You can also accept a function as a parameter for any of your functions
> too. For example:
>
> every_other(Fun, List) ->
>   {_, Res} = lists:foldl(fun(Elem, {Idx, Acc}) -> case Idx rem 2 of 0 ->
> {Idx + 1, Acc ++ [Elem]}; 1 -> {Idx + 1, Acc ++ [Fun(Elem)]} end, List),
>   Res.
>
> This returns a list with Fun applied to every other element.
>
>
> On Mon, Nov 26, 2012 at 12:09 AM, Lucky Khoza <> wrote:
>
>> Morning Erlang Developers,
>>
>> I would like to ask about: when do we use funs or anonymous functions in
>> Erlang?, I know what it is, but I can't really figure out when to use it
>> and I saw an example of it being used with Mnesia transactions.
>>
>> May someone help in this regard please.
>>
>> Kindest Regards
>> Lucky Khoza
>>
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20121126/0efefab6/attachment.html>


More information about the erlang-questions mailing list