Clause
← Toute la documentation

L'original anglais a changé depuis cette traduction ; certaines parties peuvent donc être obsolètes. Lire en anglais

Traduit de l'original anglais · 1e3a39c8-dirty · 2026-10-26

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

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 < ports < 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. Les nombres (petits entiers, flottants, bignums par signe et membres), les atomes (par leurs orthographes dans la table des atomes, via l'index sans verrou par numéro), les références locales (par numéro), les binaries d'octets entiers, et les tuples et listes de ces valeurs imbriqués jusqu'à 8 niveaux sont ordonnés directement depuis leurs mots et cellules (detail::word_order), sans admission de termes ; toute autre paire, un flottant face à un bignum de même longueur en bits, ou un petit entier au-delà de 2^53 face à un flottant utilise l'ordre structurel. =:= prend le même chemin (detail::word_exact) : les paires qu'il ordonne distinctement sont inégales, et un même mot ou deux références qu'il trouve égales sont égaux ; une réception filtrant la référence d'une réponse n'admet donc aucun terme. lists:sort/1 et lists:usort/1 trient les mots des éléments sur place : les listes de petits entiers uniquement ou d'atomes uniquement par mot ou orthographe, les autres par un tri stable selon l'ordre des mots.

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}