Clause
← All dokumentation

Det engelska originalet har ändrats sedan översättningen gjordes, så delar av den kan vara inaktuella. Läs på engelska

Översatt från det engelska originalet · 1e3a39c8-dirty · 2026-10-26

Termrepresentationer

Tillåtna sorter: atomer/booleska värden, godtyckliga heltal, ändliga binary64-flyttal, tupler, äkta/oäkta listor och strängar, maps, bitstrings och vanliga tupel-records; native records (native records); funs (funktionsvärden); lokala pids, portar och referenser (nedan, portar). Ordkodningar finns i abi.md.

Ägarskap

Atomer

Heltal

Flyttal

Tupler, listor, strängar

Maps

Bitstrings

Records

Pids och referenser

self/0 returnerar den anropande processens pid, make_ref/0 en ny referens; pid_to_list/1 och ref_to_list/1 returnerar deras text.

Jämförelse och ordning

Iterativ utan arbetsgräns, som i OTP: endast minnet för väntande par begränsar en jämförelse, inklusive nyckelsökningar i maps, och identiska ord är lika utan genomgång. Byte-justerade bitstrings jämför hela byte åt gången. Ordning: tal < atomer < referenser < funs < portar < pids < tupler < native records < maps < nil < listor < bitstrings (funs ordnas sinsemellan). Atomer jämförs efter UTF-8-stavning (kodpunktsordning); tupler efter aritet och sedan fält; maps efter storlek, sedan nycklar, sedan värden; bitstrings efter logiska bitar. Tal (små heltal, flyttal, bignums efter tecken och limbar), atomer (efter sina stavningar i atomtabellen, via det låsfria nummerindexet), lokala referenser (efter nummer), binaries med hela byte samt tupler och listor av dessa nästlade upp till 8 nivåer ordnas direkt från sina ord och celler (detail::word_order), utan admission av termer; alla andra par, ett flyttal mot ett bignum med samma bitlängd, eller ett litet heltal bortom 2^53 mot ett flyttal tar den strukturella ordningen. =:= tar samma väg (detail::word_exact): par som den ordnar olika är olika, och ett ord eller två referenser som den finner lika är lika, så att en receive som matchar ett svars referens inte gör någon admission av termer. lists:sort/1 och lists:usort/1 sorterar elementord på plats: listor med enbart små heltal eller atomer efter ord eller stavning, andra med en stabil sortering efter ordjämförelse.

Utskrift

format_term (output.hpp) återger varje tillåten term i en av två OTP-stilar. Heltal, tupler (records är tupler) och nästling ser likadana ut i båda.

~w (TermStyle::write)erlang:display/1 (TermStyle::display)
AtomerCiteras om den inte börjar med en gemen Latin-1-bokstav följd av namntecken (med @); reserverade ord och maybe/else citeras; tecken utanför Latin-1 skrivs som \x{H}Citeras om den inte börjar med en gemen Latin-1-bokstav följd av alfanumeriska tecken eller _; reserverade ord och @ har ingen specialregel; UTF-8 behålls
FlyttalKortaste tur-och-retur i OTP:s layout: 0.1, 100.0, 1.0e16, 1.5e-7C %.6e: 1.500000e+00
ListorElement: [104,105], [1,2|3]En platt lista av utskrivbara Latin-1-byte skrivs som "hi" (råa byte; endast \n och " skyddas)
Bitstrings<<1,2,5:3>>En utskrivbar ASCII-binary skrivs som <<"hi">>, andra som ~w
Maps#{k => v,k2 => v2}#{k=>v,k2=>v2}