---
kurs:
  - D0009E
tags:
  - programmering
  - python
  - algoritm
förkunskaper:
  - "[[Returvärden]]"
status: true
aliases:
  - Rekursiv funktion
---
> **Kurs:** D0009E

---

En funktion som anropar sig själv. Används när problemet har en enklare delproblem-struktur.

```python
def faktorial(n):
    if n <= 1:
        return 1
    return n * faktorial(n - 1)
```

## Två delar

1. **Basfall** — enklaste fall som returnerar direkt.
2. **Rekursivt steg** — anrop på ett "mindre" problem.

> [!warning]
> Glöm inte basfallet → oändlig rekursion → `RecursionError`.

## Se även

- [[Matematisk induktion]]
- [[For-loopar]]

## Resurser

- [3Blue1Brown: Towers of Hanoi and recursion](https://youtu.be/2SUvWfNJSsM)
