# functie: een herbruikbare taak een naam geven [Syntaxis en waarden](LEESMIJ.md) ```pliro # taal: nl functie telOp(a, b): geef a + b zeg telOp(2, 3) ``` Parameters zijn positioneel en hebben een vast aantal. Een afsluitende komma is toegestaan. Standaardwaarden, benoemde/optionele/variadische parameters, typeannotaties en destructurering bestaan nog niet. Zie hoofdstuk 11. Functies zijn waarden, hebben een vast aantal positionele argumenten en kunnen worden doorgegeven, teruggegeven en lokaal gedeclareerd. Hun buitenste bereik is het bereik van de declaratie, niet dat van de aanroeper. Ze blijven verwijzen naar de gevangen variabelen en zien latere wijzigingen daarvan. ```pliro # taal: nl functie maakTeller(): laat aantal = 0 functie volgende(): zet aantal = aantal + 1 geef aantal geef volgende laat teller = maakTeller() zeg teller() zeg teller() ``` Een functie die het einde van haar blok bereikt, geeft `geen` terug. `geef expressie` beëindigt direct de huidige aanroep. Een verkeerd aantal argumenten geeft een diagnose. Er zijn geen anonieme functies, lambdas, methodedeclaraties of overbelasting. Recursie is begrensd. Sessieruntimes hebben een instelbare aanroepdiepte; de gegenereerde native runtime gebruikt momenteel maximaal 256 geneste gebruikersfunctieaanroepen. ## Gerelateerde lemma’s [Syntaxis en waarden](LEESMIJ.md) · [Ingebouwde functies](../ingebouwde-functies/LEESMIJ.md) · [Programmeergidsen](../gidsen/LEESMIJ.md)