Erlang Language Anonymous function


Here 2 examples of recursive anonymous functions based on previous example. Firstly, simple infinite loop:

InfiniteLoop = fun 
  R() -> 
    R() end.

Secondly, anonymous function doing loop over list:

LoopOverList = fun 
  R([]) -> ok;
  R([H|T]) ->
    R(T) end.

These two functions could be rewritten as:

InfiniteLoop = fun loop/0.

In this case, loop/0 is a reference to loop/0 from remarks. Secondly, with little more complex:

LoopOverLlist = fun loop/2.

Here, loop/2 is a reference to loop/2 from list example. These two notations are syntactic sugar.