Clause
← Toute la documentation

Traduit de l'original anglais · 06042fa · 2026-10-09 · Lire en anglais

Représentation des termes

Types admis : atomes/booléens, entiers arbitraires, flottants binary64 finis, tuples, listes propres/impropres et chaînes, maps, bitstrings et records ordinaires sous forme de tuples ; native records (native records) ; funs (valeurs fonctionnelles) ; pids, ports et références locaux (ci-dessous, ports). Les encodages en mots se trouvent dans abi.md.

Propriété

Atomes

Entiers

Flottants

Tuples, listes, chaînes

Maps

Bitstrings

Records

Pids et références

Plan 11 step 42. self/0 renvoie le pid du processus appelant, make_ref/0 une nouvelle référence ; pid_to_list/1 et ref_to_list/1 renvoient leur texte.

Comparaison et ordre

Itérative et sans plafond de travail, comme dans OTP : seule la mémoire pour les paires en attente limite une comparaison, recherches de clés de map comprises, et des mots identiques sont égaux sans parcours. Les bitstrings alignées sur l'octet comparent des octets entiers d'un coup. Ordre : nombres < atomes < références < funs < pids < tuples < native records < maps < nil < listes < bitstrings (les funs s'ordonnent entre elles). Les atomes se comparent selon leur orthographe UTF-8 (ordre des points de code) ; les tuples par arité puis par champs ; les maps par taille, puis clés, puis valeurs ; les bitstrings par bits logiques.

Affichage

format_term (output.hpp) rend tout terme admis dans l'un des deux styles d'OTP. Les entiers, les tuples (les records sont des tuples) et l'imbrication sont identiques dans les deux.

~w (TermStyle::write)erlang:display/1 (TermStyle::display)
AtomesEntre guillemets sauf s'il commence par une minuscule Latin-1 suivie de caractères de nom (avec @) ; les mots réservés et maybe/else sont entre guillemets ; au-delà de Latin-1, échappement en \x{H}Entre guillemets sauf s'il commence par une minuscule Latin-1 suivie d'alphanumériques ou de _ ; pas de règle spéciale pour les mots réservés et @ ; UTF-8 conservé
FlottantsAller-retour le plus court dans la disposition d'OTP : 0.1, 100.0, 1.0e16, 1.5e-7%.6e du C : 1.500000e+00
ListesÉléments : [104,105], [1,2|3]Une liste plate d'octets Latin-1 imprimables s'affiche comme "hi" (octets bruts ; seuls \n et " sont échappés)
Bitstrings<<1,2,5:3>>Un binary ASCII imprimable s'affiche comme <<"hi">>, les autres comme ~w
Maps#{k => v,k2 => v2}#{k=>v,k2=>v2}