Tracce
/
Gleam
Gleam
/
Programma
/
Ricorsione
Ri

Ricorsione in Gleam

21 esercizi

Informazioni su Ricorsione

La capacità di qualcosa di essere definito in termini di se stesso si chiama ricorsione. In Gleam, la ricorsione si trova più comunemente nelle funzioni ricorsive, cioè funzioni che chiamano se stesse.

Una funzione ricorsiva deve avere almeno un caso base e almeno un caso ricorsivo. Un caso base restituisce un valore senza chiamare di nuovo la funzione. Un caso ricorsivo chiama di nuovo la funzione, modificando l'input in modo che a un certo punto corrisponda al caso base.

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

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

Gleam non ha una sintassi speciale per i cicli, quindi tutti i cicli si fanno con la ricorsione.

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

Gleam supporta anche i tipi personalizzati ricorsivi. Un tipo personalizzato ricorsivo ha una o più varianti che, nei dati che contengono, fanno riferimento al tipo stesso.

pub type RussianDoll {
  Child               // Base case
  Mother(RussianDoll) // Recursive case
}
let very_big_doll = Mother(Mother(Mother(Child)))
let small_doll = Mother(Child)
Modifica tramite GitHub Il collegamento si apre in una nuova finestra o scheda

Impara Ricorsione

La pratica è bloccata

Sblocca 8 altri esercizi per esercitarti su Ricorsione