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.<div class="gmail_extra">
<br><br><div class="gmail_quote">On Mon, Nov 26, 2012 at 12:25 AM, Jeremy Ong <span dir="ltr"><<a href="mailto:jeremy@playmesh.com" target="_blank">jeremy@playmesh.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
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).<div>
<br></div><div>You can also accept a function as a parameter for any of your functions too. For example:</div><div><br></div><div>every_other(Fun, List) -></div><div> {_, 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),</div>
<div> Res.</div><div><br></div><div>This returns a list with Fun applied to every other element.</div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div class="h5">On Mon, Nov 26, 2012 at 12:09 AM, Lucky Khoza <span dir="ltr"><<a href="mailto:mrkhoza@gmail.com" target="_blank">mrkhoza@gmail.com</a>></span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">Morning Erlang Developers,<br><br>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. <br>
<br>May someone help in this regard please.<br><br>Kindest Regards<span><font color="#888888"><br>Lucky Khoza<br>
</font></span><br></div></div><div class="im">_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></div></blockquote></div><br></div>
</blockquote></div><br></div>