Clause
← All dokumentation

Översatt från det engelska originalet · 06042fa · 2026-10-09 · Läs på engelska

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

Plan 11 step 42. 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 < 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.

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}