← Voltar ao Glossário
IntermediárioGeral

O que é Recursão?

Técnica onde uma função chama a si mesma para resolver um problema dividindo-o em subproblemas menores.

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];
  });
}