Wenn du z.B. eine integer-Variable hast, die 10 verschiedene Werte annehmen kann und du diese prüfen willst, dann kann man schreiben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| if (myvar = 1) then foo else if (myvar = 2) then foo1 else if (myvar = 3) then foo2 . . . |
Es geht aber auch kürzer:
Delphi-Quelltext
1: 2: 3: 4: 5:
| case myvar of 1: foo; 2: foo1; 3: foo2; ... |
Erspart Speicherplatz. Ich denke mal, dass case-of auch für die Performance besser ist, da nicht 10 mal if-Abfragen geprüft werden müssen, sondern nach dem richtigen Fund abgebrochen wird (oder nicht?

).
Function ist wie alles andere kein Typ.
Function leitet ein Funktion ein:
Delphi-Quelltext
1: 2: 3: 4:
| function Summiere(a,b: integer): integer; begin result : = a + b; end; |
Jede Funktion hat einen Rückgabewert (hier integer). Funktionen machen den Code im Großen und Ganzen übersichtlicher und verwendbarer.
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot