Definição completa
Recursão é um paradigma de programação onde uma função resolve um problema chamando a si mesma com uma versão simplificada do mesmo problema. Toda função recursiva precisa de um caso base (condição de parada) para evitar loop infinito e um caso recursivo que reduz o problema a cada chamada. É especialmente útil para estruturas de dados hierárquicas como árvores e grafos, e algoritmos como busca binária e ordenação.
Exemplo de código
// Exemplos clássicos de recursão
// Fatorial
function fatorial(n: number): number {
if (n <= 1) return 1; // caso base
return n * fatorial(n - 1); // caso recursivo
}
// Percorrer árvore de arquivos
function listarArquivos(caminho: string): string[] {
const itens = fs.readdirSync(caminho);
return itens.flatMap((item) => {
const fullPath = path.join(caminho, item);
if (fs.statSync(fullPath).isDirectory()) {
return listarArquivos(fullPath); // recursão
}
return [fullPath];
});
}