En , eller er en del av et dataprogram hvor en sekvens av instruksjoner er gruppert. De kan være navngitte, eller anonyme (lambda-funksjoner). Funksjoner endrer data enten med retur-verdier, eller ved endring av pekere. Nye verdier deklarert inne i funksjonen er oftest bare synlig (privat) i funksjonens omfang.