Биф

Встроенная функция. Синонимы: BIF, Built-In Function.

Бифов в Эрланге весьма много. Бифы рассматриваются как органичная часть языка. Например, без бифа spawn, отвечающего за создание акторов, сложно себе представить Эрланг. Поддержка этого бифа реализована внутри BEAM.

Некоторые бифы при использовании не требуют указания модуля. Например, можно написать как erlang:self(), так и self(), что будет равнозначно. Аналогично:

3> atom_to_list(privet).
"privet"
4> erlang:atom_to_list(privet).
"privet"

(Здесь атом privet превращается в список, но поскольку оболочка видит в этом списке одни буквы, она и выводит для нас список как строку.)

Другие бифы надо использовать с префиксом. Например, erlang:fun_info() будет работать, а просто fun_info() — не будет. В документации бифы, которые можно вызывать без указания модуля, так и приводятся — без модуля. Где нужно указывать модуль, он пишется в документации.

Некоторые бифы можно использовать в гардах кляуз, например is_integer/1, чтобы проверить целое это число или нет. Но большинство бифов (как и прочих функций) использовать в гардах запрещено, дабы не вызывать побочных эффектов.

Узнать имя текущей ноды можно с помощью бифа node(), а получить список нод, с которыми связаны — с помощью бифа nodes().


© Алексей Карманов, 2024.