Recursão em programação funcional

Conceitos de Paradigmas de Programação

Eleanor Thomas

Senior Data Analytics Engineer

O que é recursão?

  • Função recursiva: função que chama a si mesma
  • Deve ter uma condição de parada (caso base)
  • Também faz a chamada recursiva com entrada modificada
0 | def my_recursive_function(input_value):
1 |     # base case
2 |     if base_case_condition:
3 |        return base_case_output_value
4 |     # recursive call
5 |     else:
6 |        return my_recursive_function(modified_input_value) + some_modification
Conceitos de Paradigmas de Programação

Por que usar recursão?

  • Alguns problemas ficam mais simples quando definidos recursivamente
  • Números de Fibonacci:
    • 0, 1, ...
    • 0, 1, 1, ...
    • 0, 1, 1, 2, ...
    • 0, 1, 1, 2, 3, ...
Conceitos de Paradigmas de Programação

Mais exemplos de recursão

Um sistema de arquivos

  • Buscar em um sistema de arquivos
Conceitos de Paradigmas de Programação

Mais exemplos de recursão

Um sistema de arquivos; um método de ordenação

  • Buscar em um sistema de arquivos
  • Alguns algoritmos de ordenação, como Merge Sort
Conceitos de Paradigmas de Programação

Mais exemplos de recursão

Um sistema de arquivos; um método de ordenação; uma estrutura de dados

  • Buscar em um sistema de arquivos
  • Alguns algoritmos de ordenação, como Merge Sort
  • Várias estruturas de dados são definidas recursivamente
Conceitos de Paradigmas de Programação

Recursão vs. iteração

  • Toda função recursiva pode ser escrita de forma iterativa
  • Função iterativa usa um loop em vez de chamada recursiva
def iterative_factorial(n):
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result
Conceitos de Paradigmas de Programação

Vamos praticar!

Conceitos de Paradigmas de Programação

Preparing Video For Download...