Eine Funktion in der Programmierung von Computersystemen ist ein Stück zusammengehörenden Codes, der es erlaubt, eine bestimmte Aufgabe in wiederverwendbarer Art umzusetzen.
Funktionen können einen oder mehrere Aufrufparameter haben und liefern nach ihrem Ende (im Gegensatz zu Prozeduren) einen Funktionswert zurück. Funktionen werden typischerweise in Bibliotheken thematisch gebündelt. Neben Standardfunktionen, mit denen man zum Beispiel an die Schnittstellen des Betriebssystems ankoppeln kann, gibt es auch eigenständige Funktionen, die lediglich Daten verarbeiten. Des Weiteren besteht die Möglichkeit, selbst Funktionen und Bibliotheken zu erstellen, um damit den eigenen Code modularer und wiederverwendbarer zu gestalten.
Funktionen, die, wenn sie mit den gleichen Parameterwerten aufgerufen werden, immer das selbe Ergebnis liefern, heißen pure Funktionen (englisch pure functions). Dazu gehören mathematische Routinen wie sin(x), log(x), jedoch z.B. nicht Zufallsgeneratorfunktionen (random).
Funktionen können, je nach Art der Parameterübergabe, auch Parameterwerte verändern, z.B. wenn inc(x) das Argument um eins erhöht (Inkrement). Funktionen, deren Aufruf ihre Argumente und ihre Umgebung niemals verändert, heißen nebeneffektfrei.
Beispiel einer Funktion in C:
int add (int a, int b) { return a + b; }
Beispiel eines Funktionsaufrufs in C:
ergebnis = add (1, 2);
Beispiel einer Funktion in Pascal:
FUNCTION Add (a:Integer, b:Integer):Integer; BEGIN Add := a + b; END;
Beispiel eines Funktionsaufrufs in Pascal:
ergebnis := Add (1, 2);
Siehe auch: Programmiersprache Prozedur (Programmierung) Compiler Inline-Assembler Syntax Unterprogramm