BIF - это функции, встроенные в Erlang. Обычно они выполняют задачи, которые невозможно запрограммировать в Erlang. Например, невозможно превратить список в кортеж или найти текущее время и дату. Для выполнения такой операции мы называем BIF.

Давайте рассмотрим пример использования BIF:

-module(helloworld). 
-export([start/0]). 

start() ->   
   io:fwrite("~p~n",[tuple_to_list({1,2,3})]), 
   io:fwrite("~p~n",[time()]).

В приведенном выше примере необходимо отметить следующее:

  • В первом примере мы используем BIF под названием tuple_to_list для преобразования кортежа в список.
  • Во второй функции BIF мы используем функцию memory для вывода системного времени.
date Этот метод возвращает текущую системную дату.
byte_size Этот метод возвращает количество байтов, содержащихся в битстроке.
element Метод возвращает N-й элемент в кортеже.
float Этот метод возвращает значение float определенного числа.
get Метод возвращает словарь процесса как список.
put Этот метод используется для ввода пары ключ, значение в словарь процесса.
localtime Метод используется для указания локальной даты и времени в системе.
memory Возвращает список, содержащий информацию о динамически распределенной памяти эмулятора Erlang.
now Этот метод возвращает кортеж {MegaSecs, Secs, MicroSecs}, прошедший с 00:00 по Гринвичу, 1 января 1970 года.
ports Возвращает список всех портов на локальном узле
processes Возвращает список идентификаторов процессов, соответствующих всем процессам, существующим на локальном узле.
universaltime Возвращает текущую дату и время в соответствии с Универсальным временным временем (UTC).