En Erlang ¿hay alguna manera de referenciar la función que se está ejecutando actualmente?Erlang: ¿cómo puedo hacer referencia a una función anónima desde dentro del cuerpo?
que serían útiles para desovar un bucle infinito:
spawn(fun() -> do_something, this_fun() end)
En JavaScript arguments.callee
hace justamente eso, ver la especificación de MDC.
Edita para responder un 'por qué harías eso': mayormente curiosidad; también es útil para definir un temporizador cuando prorotyping:
Self = self(),
spawn(fun() -> Self ! wake_up, receive after 1000 -> nil end, this_fun() end),
%% ...
¿Por qué necesitarías eso? – zakovyrya
Esto también se ha respondido en esta pregunta: http://stackoverflow.com/questions/867418/how-do-you-write-a-fun-thats-recursive-in-erlang/867525#867525 –
"Funs with Names ": http://www.erlang.org/eeps/eep-0037.html, que se fusionó en Erlang a finales de 2012. –