['games', 'knowledge', 'materials', 'patterns', 'home repairs']
En el context de la programació, què significa el terme "recursivitat" i com funciona?
En programació, la recursivitat és una tècnica potent que permet a una funció cridar-se a si mateixa dins del seu propi codi. Imagina-ho com un mirall que reflecteix un altre mirall, creant una seqüència infinita d'imatges.

La recursivitat funciona dividint un problema complex en subproblemes més petits i similars al problema original.  Cada vegada que la funció es crida a si mateixa, treballa amb un subproblema més petit fins que arriba a un "cas base" que es pot resoldre directament, sense necessitat de més crides recursives.  A partir d'aquí, les solucions dels subproblemes es combinen per a obtenir la solució al problema original.

Per exemple, imagina que vols calcular el factorial d'un nombre (el factorial de 5, escrit 5!, és 5 * 4 * 3 * 2 * 1 = 120). Una funció recursiva per a calcular el factorial podria ser així:

```python
def factorial(n):
  if n == 0:
    return 1
  else:
    return n * factorial(n - 1)
```

En aquest exemple, el "cas base" és quan n és igual a 0, ja que el factorial de 0 és 1. Si n és major que 0, la funció es crida a si mateixa amb n-1 fins que arriba al cas base. 

La recursivitat pot ser molt útil per a resoldre problemes que es poden descompondre en subproblemes similars, com ara la navegació per estructures de dades arbòries, algoritmes de cerca i ordenació, i la resolució de problemes matemàtics com el càlcul de la seqüència de Fibonacci.