В более старых версиях Erlang нет простого способа получить текущее имя функции во время компиляции. Однако вы можете получить его во время выполнения:
Где A - арность (количество аргументов), а не фактические аргументы. Первый аргумент process_info/2 - это идентификатор процесса, который может быть либо текущим процессом (self()), либо другим процессом. Например:
Обратите внимание, однако, что, хотя это будет функционально эквивалентно макросу ?FUNCTION_NAME, он намного медленнее, поскольку он оценивается во время выполнения.
Ответ 2
во время выполнения вы можете выбросить исключение и проверить верхнюю часть stacktrace.