# Verschillende soorten waarden [Syntaxis en waarden](LEESMIJ.md) 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](../begrippen/kommagetallen-en-afronding.md) 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](LEESMIJ.md) · [Ingebouwde functies](../ingebouwde-functies/LEESMIJ.md) · [Programmeergidsen](../gidsen/LEESMIJ.md)