Trong Erlang có cách nào tham chiếu đến chức năng hiện đang thực hiện) không?Erlang: làm thế nào tôi có thể tham chiếu một hàm ẩn danh từ bên trong cơ thể?
Đó sẽ là hữu ích để đẻ trứng một vòng lặp vô hạn:
spawn(fun() -> do_something, this_fun() end)
Trong JavaScript arguments.callee
không chỉ đó, xem đặc điểm kỹ thuật trên MDC.
Chỉnh sửa để trả lời 'tại sao bạn sẽ làm điều đó': phần lớn là tò mò; nó cũng rất hữu ích để xác định một bộ đếm thời gian khi prorotyping:
Self = self(),
spawn(fun() -> Self ! wake_up, receive after 1000 -> nil end, this_fun() end),
%% ...
Tại sao bạn cần điều đó? – zakovyrya
Điều này cũng đã được trả lời trong câu hỏi này: 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, được sáp nhập vào Erlang vào cuối năm 2012. –