In Erlang esiste un modo per fare riferimento alla funzione attualmente in esecuzione)?Erlang: come posso fare riferimento a una funzione anonima dall'interno del corpo?
che sarebbe utile a generare un ciclo infinito:
spawn(fun() -> do_something, this_fun() end)
In JavaScript arguments.callee
fa proprio questo, si veda la specifica sulla MDC.
Modifica per rispondere a "perché lo faresti?": Per lo più curiosità; è anche utile per definire un timer quando prorotyping:
Self = self(),
spawn(fun() -> Self ! wake_up, receive after 1000 -> nil end, this_fun() end),
%% ...
Perché ne hai bisogno? – zakovyrya
Anche questa domanda ha risposto: 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, che è stato fuso in Erlang alla fine del 2012. –