Avsnitt

C9 Föreläsningar: Dr Erik Meijer - Grunderna i funktionell programmering kapitel 6 av 13

I kapitel 6 vägleder Dr Meijer oss genom en värld av rekursiva funktioner. I Haskell kan funktioner definieras i sig själva. Sådana funktioner kallas rekursiva.

Exempel:

factorial 0 = 1
factorial (n+1) = (n+1) * factorial n

factorial maps 0 till 1, och alla andra positiva heltal till produkten av sig själv och factorial av sin föregångare.

Vissa funktioner, till exempel faktoriella, är enklare att definiera när det gäller andra funktioner. Som vi kommer att se kan dock många funktioner naturligtvis definieras i sig själva.

Egenskaper hos funktioner som definieras med rekursion kan bevisas med hjälp av den enkla men kraftfulla matematiska induktionstekniken.

Du bör titta på dessa i följd (eller hoppa över beroende på din botande kunskapsnivå i den här domänen):

Kapitel 1kapitel 2kapitel 3kapitel 4 kapitel 5kapitel 6kapitel 7kapitel 8kapitel 9 kapitel10kapitel 11kapitel 12kapitel 13