Clause
← Gesamte Dokumentation

Das englische Original wurde seit dieser Übersetzung geändert, daher können Teile davon veraltet sein. Auf Englisch lesen

Übersetzt aus dem englischen Original · 1e3a39c8-dirty · 2026-10-26

Term-Darstellungen

Zugelassene Arten: Atome/Booleans, beliebige Ganzzahlen, endliche binary64-Gleitkommazahlen, Tupel, echte/unechte Listen und Zeichenketten, Maps, Bitstrings und gewöhnliche Tupel-Records; native Records (native Records); Funs (Funktionswerte); lokale Pids, Ports und Referenzen (unten, Ports). Wortkodierungen stehen in abi.md.

Besitz

Atome

Ganzzahlen

Gleitkommazahlen

Tupel, Listen, Zeichenketten

Maps

Bitstrings

Records

Pids und Referenzen

self/0 gibt die Pid des aufrufenden Prozesses zurück, make_ref/0 eine neue Referenz; pid_to_list/1 und ref_to_list/1 geben ihren Text zurück.

Vergleich und Ordnung

Iterativ ohne Arbeitsgrenze, wie in OTP: Nur der Speicher für ausstehende Paare begrenzt einen Vergleich, Schlüsselsuchen in Maps eingeschlossen, und identische Wörter sind ohne Durchlauf gleich. Byteausgerichtete Bitstrings vergleichen ganze Bytes auf einmal. Ordnung: Zahlen < Atome < Referenzen < Funs < Ports < Pids < Tupel < native Records < Maps < nil < Listen < Bitstrings (zur Ordnung der Funs untereinander). Atome werden nach UTF-8-Schreibweise verglichen (Codepoint-Reihenfolge); Tupel nach Stelligkeit, dann Feldern; Maps nach Größe, dann Schlüsseln, dann Werten; Bitstrings nach logischen Bits. Zahlen (kleine Ganzzahlen, Gleitkommazahlen, Bignums nach Vorzeichen und Limbs), Atome (nach ihren Schreibweisen in der Atomtabelle über den sperrfreien Nummernindex), lokale Referenzen (nach Nummer), ganzbytige binaries sowie bis zu 8 Ebenen tief verschachtelte Tupel und Listen daraus werden direkt aus ihren Wörtern und Zellen geordnet (detail::word_order), ohne Zulassung als Term; jedes andere Paar, eine Gleitkommazahl gegenüber einem Bignum gleicher Bitlänge oder eine kleine Ganzzahl jenseits von 2^53 gegenüber einer Gleitkommazahl verwendet die strukturelle Ordnung. =:= nimmt denselben Pfad (detail::word_exact): Paare, die er unterschiedlich einordnet, sind ungleich, und ein Wort oder zwei Referenzen, die er als gleich erkennt, sind gleich, sodass ein receive beim Matchen der Referenz einer Antwort keinen Term zulässt. lists:sort/1 und lists:usort/1 sortieren Elementwörter an Ort und Stelle: Listen nur kleiner Ganzzahlen oder nur von Atomen nach Wort oder Schreibweise, andere mit einer stabilen Sortierung nach Wortordnung.

Ausgabe

format_term (output.hpp) stellt jeden zugelassenen Term in einem von zwei OTP-Stilen dar. Ganzzahlen, Tupel (Records sind Tupel) und Verschachtelung sehen in beiden gleich aus.

~w (TermStyle::write)erlang:display/1 (TermStyle::display)
AtomeIn Anführungszeichen, außer ein Latin-1-Kleinbuchstabe steht am Anfang und Namenszeichen (mit @) folgen; reservierte Wörter und maybe/else stehen in Anführungszeichen; jenseits von Latin-1 als \x{H} maskiertIn Anführungszeichen, außer ein Latin-1-Kleinbuchstabe steht am Anfang und alphanumerische Zeichen oder _ folgen; für reservierte Wörter und @ gilt keine Sonderregel; UTF-8 bleibt erhalten
GleitkommazahlenKürzeste verlustfreie Darstellung im OTP-Layout: 0.1, 100.0, 1.0e16, 1.5e-7C %.6e: 1.500000e+00
ListenElemente: [104,105], [1,2|3]Eine flache Liste druckbarer Latin-1-Bytes wird als "hi" ausgegeben (rohe Bytes; nur \n und " maskiert)
Bitstrings<<1,2,5:3>>Ein druckbares ASCII-Binary wird als <<"hi">> ausgegeben, andere wie ~w
Maps#{k => v,k2 => v2}#{k=>v,k2=>v2}