Trilhas
/
Gleam
Gleam
/
Programa
/
Recursão
Re

Recursão em Gleam

21 exercícios

Sobre Recursão

A capacidade de algo ser definido em termos de si mesmo é chamada de recursão. No Gleam, a recursão aparece mais comumente em funções recursivas, que são funções que chamam a si mesmas.

Uma função recursiva precisa ter pelo menos um caso base e pelo menos um caso recursivo. Um caso base retorna um valor sem chamar a função de novo. Um caso recursivo chama a função novamente, modificando a entrada para que em algum momento ela corresponda ao caso base.

pub fn factorial(x: Int) -> Int {
  case x {
    // Base case
    1 -> 1

    // Recursive case
    _ -> x * factorial(x - 1)
  }
}

O Gleam não tem sintaxe especial para laços, então todo laço é feito com recursão.

pub fn list_length(list: List(String)) -> Int {
  case list {
    [] -> 0
    [_, ..rest] -> 1 + list_length(rest)
  }
}

O Gleam também dá suporte a tipos personalizados recursivos. Um tipo personalizado recursivo tem uma ou mais de suas variantes que se referem a si mesmas nos dados que contêm.

pub type RussianDoll {
  Child               // Base case
  Mother(RussianDoll) // Recursive case
}
let very_big_doll = Mother(Mother(Mother(Child)))
let small_doll = Mother(Child)
Editar via GitHub O link abre em uma nova janela ou aba

Aprenda Recursão

A prática está bloqueada

Desbloqueie mais 8 exercícios para praticar Recursão