Clause
← Toda a documentação

Traduzido do original em inglês · 06042fa · 2026-10-09 · Ler em inglês

Representação dos termos

Tipos admitidos: átomos/booleanos, inteiros arbitrários, floats binary64 finitos, tuplos, listas próprias/impróprias e strings, maps, bitstrings e records comuns em tuplo; native records (native records); funs (valores de função); pids, ports e referências locais (abaixo, ports). As codificações em palavras estão em abi.md.

Propriedade

Átomos

Inteiros

Floats

Tuplos, listas, strings

Maps

Bitstrings

Records

Pids e referências

Plano 11, step 42. self/0 devolve o pid do processo chamador, make_ref/0 uma nova referência; pid_to_list/1 e ref_to_list/1 devolvem o seu texto.

Comparação e ordem

Iterativa e sem limite de trabalho, como no OTP: apenas a memória para os pares pendentes limita uma comparação, incluindo as pesquisas de chaves de map, e palavras idênticas são iguais sem percurso. Os bitstrings alinhados ao byte comparam bytes inteiros de uma vez. Ordem: números < átomos < referências < funs < pids < tuplos < native records < maps < nil < listas < bitstrings (as funs ordenam-se entre si). Os átomos comparam-se pela grafia UTF-8 (ordem dos pontos de código); os tuplos pela aridade e depois pelos campos; os maps pelo tamanho, depois pelas chaves e depois pelos valores; os bitstrings pelos bits lógicos.

Impressão

format_term (output.hpp) apresenta qualquer termo admitido num de dois estilos do OTP. Os inteiros, os tuplos (os records são tuplos) e o aninhamento têm o mesmo aspeto em ambos.

~w (TermStyle::write)erlang:display/1 (TermStyle::display)
ÁtomosEntre aspas, exceto se começar por uma letra minúscula Latin-1 seguida de caracteres de nome (com @); as palavras reservadas e maybe/else levam aspas; fora do Latin-1 escapa como \x{H}Entre aspas, exceto se começar por uma letra minúscula Latin-1 seguida de alfanuméricos ou _; as palavras reservadas e @ não têm regra especial; o UTF-8 é mantido
FloatsA representação mais curta que preserva o valor, na disposição do OTP: 0.1, 100.0, 1.0e16, 1.5e-7C %.6e: 1.500000e+00
ListasElementos: [104,105], [1,2|3]Uma lista plana de bytes Latin-1 imprimíveis é impressa como "hi" (bytes em bruto; apenas \n e " são escapados)
Bitstrings<<1,2,5:3>>Um binary ASCII imprimível é impresso como <<"hi">>, os restantes como ~w
Maps#{k => v,k2 => v2}#{k=>v,k2=>v2}