En funksjon kan aldri endre tilstander andre steder i koden (ingen bivirkninger), og må alltid returnere noe. Dette er ulikt mange imperative språk, der man kan kalle en funksjon for å gjøre endringer i parametrene gitt til funksjonen (f.eks. ved sortering av en array).