ट्रैक
/
Gleam
Gleam
/
सिलेबस
/
रिकर्शन
रि

रिकर्शन में Gleam

21 अभ्यास

रिकर्शन के बारे में

किसी चीज़ को खुद के संदर्भ में परिभाषित करने की क्षमता को रिकर्शन कहते हैं। Gleam में रिकर्शन सबसे आम तौर पर रिकर्शन फंक्शन में मिलता है, यानी ऐसे फंक्शन जो खुद को कॉल करते हैं।

एक रिकर्शन फंक्शन में कम से कम एक बेस केस और कम से कम एक रिकर्शन केस होना ज़रूरी है। बेस केस फंक्शन को फिर से कॉल किए बिना एक वैल्यू लौटाता है। रिकर्शन केस फंक्शन को फिर से कॉल करता है और इनपुट को इस तरह बदलता है कि वह आगे किसी समय बेस केस से मेल खाए।

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

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

Gleam में लूप बनाने के लिए कोई खास सिंटैक्स नहीं है, इसलिए सारे लूप रिकर्शन से ही बनाए जाते हैं।

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

Gleam रिकर्शन वाले कस्टम टाइप को भी सपोर्ट करता है। रिकर्शन वाले कस्टम टाइप का एक या अधिक वेरिएंट अपने अंदर के डेटा में उसी टाइप को संदर्भित करते हैं।

pub type RussianDoll {
  Child               // Base case
  Mother(RussianDoll) // Recursive case
}
let very_big_doll = Mother(Mother(Mother(Child)))
let small_doll = Mother(Child)
GitHub के ज़रिए संपादित करें यह लिंक नई विंडो या टैब में खुलता है।

रिकर्शन सीखिए

अभ्यास लॉक है

रिकर्शन पर अभ्यास करने के लिए 8 और अभ्यास अनलॉक कीजिए