Verschillende soorten waarden

Syntaxis en waarden

Getallen, tekst en waar-of-onwaar-antwoorden zijn verschillende soorten waarden. De soort, of het type, helpt bepalen welke bewerkingen zinvol zijn.

Wat betekenen de woorden in de tabel?

  • Vaste lengte betekent dat een lijst evenveel plaatsen houdt. Wijzigbaar betekent dat je de waarde op een bestaande plaats mag vervangen. Een lijst van drie onderdelen heeft na zo’n wijziging nog steeds drie plaatsen.
  • Invoegvolgorde is de volgorde waarin mapsleutels zijn toegevoegd. Dat is geen alfabetische sortering.
  • Aanroepbaar betekent dat je een waarde als functie kunt gebruiken: met haakjes en de benodigde argumenten.
  • Afwezigheid wordt voorgesteld door de speciale waarde geen. Dat is iets anders dan nul of lege tekst.
  • Eindig betekent dat een getal geen oneindigheid of ongeldige getaluitkomst is. IEEE 754 binary64 is de naam van de getalindeling met 64 bits die Pliro gebruikt. Bij kommagetallen lees je waarom sommige breuken worden afgerond.

Statische controles gebeuren vóór het uitvoeren. Runtimecontroles gebeuren terwijl het programma draait. De ariteit van een aanroep is het aantal argumenten. Type-inferentie betekent dat de computer de waardesoort uit de code afleidt zonder dat jij er een typelabel bij schrijft. Pliro controleert bekende aantallen argumenten, maar leidt nog niet vooraf alle typen af om die te controleren.

Impliciete conversie betekent dat een waardesoort automatisch wordt omgezet. Truthiness betekent dat een andere waardesoort als waar of onwaar wordt behandeld. Pliro doet geen van beide: een voorwaarde heeft een Boolean nodig. Een operand is een waarde waarop een operator werkt, zoals de twee getallen in 2 + 3.

Onbereikbare code kan nooit worden uitgevoerd. Een ongebruikte naam wordt wel gemaakt maar niet gelezen. Een controle op zekere terugkeer vraagt of elk mogelijk pad door een functie een waarde teruggeeft. Pliro meldt dit nog niet als algemene controles.

Type Voorbeeld Eigenschap
Number 3.5 Eindig IEEE-754 binary64-getal.
Text "Hallo" Onveranderlijke Unicode-tekst.
Boolean waar Alleen waar of onwaar.
List [1, "twee", geen] Geordend; bestaande elementen zijn wijzigbaar.
Map {"naam": "Ada"} Geordende sleutel/waarde-verzameling.
Function Een gedeclareerde functie. Aanroepbare waarde met lexicaal bereik.
None geen Afwezigheid van een waarde.

Lijsten mogen gemengde typen bevatten. Mapsleutels zijn Number, Text of
Boolean; collecties, functies en geen zijn geen geldige sleutels.

De compiler controleert onder meer namen, declaraties, modules, geef en
bekende aantallen argumenten. De meeste typevereisten worden bij uitvoering
gecontroleerd. Typeannotaties, algemene type-inferentie en waarschuwingen voor
ongebruikte/onbereikbare code of ontbrekende terugkeerwaarden zijn nog niet
geïmplementeerd.

Gerelateerde lemma’s

Syntaxis en waarden · Ingebouwde functies · Programmeergidsen