Clause
← Уся документація

Перекладено з англійського оригіналу · 06042fa · 2026-10-09 · Читати англійською

Подання термів

Допущені види: атоми/булеві значення, довільні цілі числа, скінченні числа з рухомою комою binary64, кортежі, правильні/неправильні списки та рядки, map, bitstring і звичайні кортежні record; native records (native records); fun (функціональні значення); локальні pid, порти та посилання (нижче, порти). Кодування слів описано в abi.md.

Володіння

Атоми

Цілі числа

Числа з рухомою комою

Кортежі, списки, рядки

Map

Bitstring

Record

Pid і посилання

План 11, step 42. self/0 повертає pid процесу, що викликає, make_ref/0 — нове посилання; pid_to_list/1 і ref_to_list/1 повертають їхній текст.

Порівняння і порядок

Ітеративне, без обмеження роботи, як в OTP: порівняння обмежує лише пам'ять для пар в очікуванні, зокрема пошуки ключів map, а ідентичні слова рівні без обходу. Bitstring, вирівняні за байтами, порівнюються цілими байтами одразу. Порядок: числа < атоми < посилання < fun < pid < кортежі < native records < map < nil < списки < bitstring (fun упорядковуються між собою). Атоми порівнюються за написанням UTF-8 (порядок кодових точок); кортежі — за арністю, потім за полями; map — за розміром, потім ключами, потім значеннями; bitstring — за логічними бітами.

Друк

format_term (output.hpp) відображає будь-який допущений терм в одному з двох стилів OTP. Цілі числа, кортежі (record є кортежами) і вкладеність виглядають однаково в обох.

~w (TermStyle::write)erlang:display/1 (TermStyle::display)
АтомиУ лапках, якщо не починаються з малої літери Latin-1, за якою йдуть символи імені (з @); зарезервовані слова і maybe/else беруться в лапки; символи поза Latin-1 екрануються як \x{H}У лапках, якщо не починаються з малої літери Latin-1, за якою йдуть літери, цифри або _; для зарезервованих слів і @ особливого правила немає; UTF-8 зберігається
Числа з рухомою комоюНайкоротше подання для точного відновлення в розміщенні OTP: 0.1, 100.0, 1.0e16, 1.5e-7C %.6e: 1.500000e+00
СпискиЕлементи: [104,105], [1,2|3]Плаский список друкованих байтів Latin-1 друкується як "hi" (сирі байти; екрануються лише \n і ")
Bitstring<<1,2,5:3>>Друкований ASCII binary друкується як <<"hi">>, інші — як ~w
Map#{k => v,k2 => v2}#{k=>v,k2=>v2}