Tracks
/
Gleam
Gleam
/
Lehrplan
/
Rekursion
Re

Rekursion in Gleam

21 Übungen

Über Rekursion

Die Fähigkeit, etwas durch sich selbst zu definieren, nennt man Rekursion. In Gleam begegnet dir Rekursion am häufigsten in rekursiven Funktionen, also Funktionen, die sich selbst aufrufen.

Eine rekursive Funktion braucht mindestens einen Basisfall und mindestens einen Rekursionsfall. Ein Basisfall gibt einen Wert zurück, ohne die Funktion erneut aufzurufen. Ein Rekursionsfall ruft die Funktion erneut auf und verändert die Eingabe so, dass sie irgendwann zum Basisfall passt.

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

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

Gleam hat keine spezielle Syntax für Schleifen, deshalb setzt du jede Wiederholung mit Rekursion um.

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

Gleam unterstützt außerdem rekursive eigene Typen. Bei einem rekursiven eigenen Typ bezieht sich mindestens eine seiner Varianten über die Daten, die sie enthält, auf den Typ selbst.

pub type RussianDoll {
  Child               // Base case
  Mother(RussianDoll) // Recursive case
}
let very_big_doll = Mother(Mother(Mother(Child)))
let small_doll = Mother(Child)
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab

Lerne Rekursion

Das Üben ist gesperrt

Schalte 8 weitere Übungen frei, um Rekursion zu üben