Kurzusok
/
Gleam
Gleam
/
Tanterv
/
Rekurzió
Re

Rekurzió ebben a kurzusban: Gleam

21 feladat

A(z) Rekurzió fogalomról

Azt a képességet, hogy valami önmaga segítségével definiálható legyen, rekurziónak nevezzük. A Gleamben a rekurzió leggyakrabban rekurzív függvényekben fordul elő, vagyis olyan függvényekben, amelyek önmagukat hívják meg.

Egy rekurzív függvénynek legalább egy alapesetre és legalább egy rekurzív esetre van szüksége. Az alapeset úgy ad vissza egy értéket, hogy nem hívja meg újra a függvényt. A rekurzív eset újra meghívja a függvényt, és módosítja a bemenetet, hogy az előbb-utóbb illeszkedjen az alapesethez.

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

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

A Gleamben nincs külön szintaxisa a ciklusokra, ezért minden ciklust rekurzióval írunk meg.

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

A Gleam támogatja a rekurzív egyedi típusokat is. Egy rekurzív egyedi típusban a változatok közül egy vagy több a bennük tárolt adatban magára a típusra hivatkozik.

pub type RussianDoll {
  Child               // Base case
  Mother(RussianDoll) // Recursive case
}
let very_big_doll = Mother(Mother(Mother(Child)))
let small_doll = Mother(Child)
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg

Tanuld meg a(z) Rekurzió fogalmat

A gyakorlás zárolva

Oldj fel még 8 feladatot, hogy gyakorolhasd a(z) Rekurzió fogalmat