Parcours
/
Gleam
Gleam
/
Programme
/
Récursivité
Ré

Récursivité en Gleam

21 exercices

À propos de Récursivité

La capacité d'une chose à se définir en termes de soi-même s'appelle la récursion. En Gleam, on rencontre le plus souvent la récursion dans les fonctions récursives, c'est-à-dire des fonctions qui s'appellent elles-mêmes.

Une fonction récursive doit avoir au moins un cas de base et au moins un cas récursif. Un cas de base renvoie une valeur sans rappeler la fonction. Un cas récursif rappelle la fonction en modifiant l'entrée, pour qu'elle finisse par correspondre au cas de base.

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

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

Gleam n'a pas de syntaxe dédiée aux boucles : toutes les boucles s'écrivent avec la récursion.

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

Gleam prend également en charge les custom types récursifs. Un custom type récursif a une ou plusieurs de ses variantes qui se réfèrent à ce type dans les données qu'elles contiennent.

pub type RussianDoll {
  Child               // Base case
  Mother(RussianDoll) // Recursive case
}
let very_big_doll = Mother(Mother(Mother(Child)))
let small_doll = Mother(Child)
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet

Apprends Récursivité

L'entraînement est verrouillé

Déverrouille 8 exercices de plus pour t'entraîner sur Récursivité