Recursivitat utilitzant la immersió =================================== De vegades, en programar utiltzant la recursivitat podem no fer dissenyar una funció que, directament, es cridi a si mateixa, sinó que faci alguna inicialització i cridi a una altra funció auxiliar amb més paràmetres que, aquesta sí, sigui recursiva. D'aquesta tècnica se'n diu fer **immersió**. * Haurem de fer immersió si se'ns demana una funció que modifiqui un paràmetre (un llista, ...). Cal fer una funció auxiliar **recursiva** amb algun altre paràmetre extra, que és el que es modifica a cada crida recursiva. * La tècnica de la immersió també es pot fer servir per eficiencia, de no haver d'emmagatzemar nous paràmetres que ocupin molta memòria a cada crida recursiva. .. rubric:: Esquema típic de recursivitat amb immersió: .. grid:: 2 .. grid-item-card:: Funció principal .. code-block:: python def funcio(params): ... v = funcio_rec(params, extra) ... return ... .. grid-item-card:: Funció auxiliar recursiva .. code-block:: python def funcio_rec(params, extra): if ... : # cas base ... return ... else: # cas recursiu ... v = funcio_rec(params, nous_extra) ... return ... **Exemples**: Vegeu el fitxer :download:`immersio.py`