Source: http://ddi.cs.uni-potsdam.de/HyFISCH/IterationRekursion/LeitprogrammRekursion.pdf