ट्रैक
/
Gleam
Gleam
/
अभ्यास
/
मौसम की रैंकिंग
मौसम की रैंकिंग

मौसम की रैंकिंग

सीखने का अभ्यास

परिचय

कॉन्स्टेंट

Gleam में कॉन्स्टेंट की मदद से वैल्यू को नाम दिया जाता है। इन्हें const कीवर्ड से बनाया जाता है।

pub const pi: Float = 3.14159

pub fn circle_area(radius: Float) -> Float {
  radius *. radius *. pi
}

जब किसी मॉड्यूल कॉन्स्टेंट को pub कीवर्ड के साथ बनाया जाता है, तो उसे दूसरे मॉड्यूल से भी इस्तेमाल किया जा सकता है। ऐसा न होने पर उसका इस्तेमाल सिर्फ उसी मॉड्यूल के अंदर किया जा सकता है जिसमें उसे बनाया गया है।

ऑर्डर

Gleam की स्टैंडर्ड लाइब्रेरी के gleam/order मॉड्यूल में Order टाइप होता है। इसका इस्तेमाल वैल्यू की तुलना करने के लिए किया जाता है।

Order की परिभाषा कुछ इस तरह दिखती है:

pub type Order {
  Gt
  Eq
  Lt
}

इस टाइप के तीन वैरिएंट होते हैं, और हर वैरिएंट एक वैल्यू का दूसरी वैल्यू से संबंध बताता है:

  • Gt - वैल्यू दूसरी वैल्यू से बड़ी है।
  • Eq - वैल्यू दूसरी वैल्यू के बराबर है।
  • Lt - वैल्यू दूसरी वैल्यू से छोटी है।

अगर किसी डेटा टाइप की तुलना उसके आकार के आधार पर की जा सकती है, तो मॉड्यूल में आम तौर पर एक compare फंक्शन बनाया जाता है, जो Order वैल्यू लौटाता है। उदाहरण के लिए, gleam/float और gleam/int में ऐसे compare फंक्शन बनाए गए हैं जो क्रमशः दशमलव संख्याओं और पूर्णांकों पर काम करते हैं।

int.compare(1, 2)
// -> Lt

int.compare(2, 2)
// -> Eq

float.compare(1.0, 2.0)
// -> Lt

क्रम में लगाने वाले फंक्शन, जैसे list.sort, आम तौर पर ऐसा फंक्शन लेते हैं जो Order वैल्यू लौटाता है। इससे फंक्शन को कॉल करने वाला तय कर सकता है कि ऐरे को किस क्रम में लगाना है।

list.sort([3, 7, 3, 1], by: int.compare)
// -> [1, 3, 3, 7]

निर्देश

टोरी एक जलवायु पत्रकार हैं और वे अलग-अलग शहरों के मौसम के बारे में एक लेख लिखना चाहती हैं। उनके पास अलग-अलग शहरों के मौसम का डेटा है और वे उन शहरों को तापमान के आधार पर क्रम में लगाना चाहती हैं। लेकिन कुछ तापमान फारेनहाइट में हैं और कुछ सेल्सियस में। तापमानों को एक ही इकाई में बदलने और फिर उन्हें क्रम में लगाने के लिए टोरी को आपकी मदद चाहिए।

1. फारेनहाइट को सेल्सियस में बदलिए

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

फारेनहाइट को सेल्सियस में बदलने के लिए फारेनहाइट की वैल्यू में से 32 घटाइए और फिर परिणाम को 1.8 से भाग दीजिए।

fahrenheit_to_celsius(72.5)
// -> 22.5

2. दो तापमानों की तुलना कीजिए

compare_temperature फंक्शन बनाइए। यह दो तापमान लेता है और एक Order वैल्यू लौटाता है, जो बताती है कि पहला तापमान दूसरे से कम है, उसके बराबर है या उससे अधिक है।

compare_temperature(Celsius(30.5), Fahrenheit(82.1))
// -> Gt

3. शहरों को तापमान के अनुसार क्रम में लगाइए

sort_cities_by_temperature फंक्शन बनाइए। यह शहरों का एक ऐरे लेता है और उन्हें सबसे ठंडे से सबसे गर्म तक के क्रम में लौटाता है।

sort_cities_by_temperature([
  City(name: "London", temperature: Celsius(30.5)),
  City(name: "Paris", temperature: Fahrenheit(82.1))
])
// -> [
//   City(name: "Paris", temperature: Fahrenheit(82.1)),
//   City(name: "London", temperature: Celsius(30.5)))
// ]
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Gleam Exercism

मौसम की रैंकिंग शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Gleam को 33 कॉन्सेप्ट122 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।