Stream मॉड्यूल से आलसी मूल्यांकन
Elixir स्ट्रीम का उपयोग करके बड़े या अनंत संग्रहों को कुशलतापूर्वक संसाधित करें, जो माँग के अनुसार मानों की गणना आलस्यपूर्वक करती हैं।
Stream मॉड्यूल से आलसी मूल्यांकन, CoddyKit पर Elixir और Phoenix: स्केलेबल बैकएंड विकास का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Elixir और Phoenix: स्केलेबल बैकएंड विकास सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Elixir और Phoenix: स्केलेबल बैकएंड विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
उत्सुक और आलसी मूल्यांकन
Enum उत्सुक होता है: हर चरण पूरी मध्यवर्ती सूची बनाता है। Stream आलसी होता है: यह संचालन को संयोजित करता है और केवल आवश्यकता होने पर गणना करता है।
उत्सुक पाइपलाइन की लागत
कई Enum कॉल को श्रृंखलाबद्ध करने पर पूरा संग्रह कई बार पढ़ा जाता है और हर चरण में एक सूची बनाई जाती है।
1..1_000_000
|> Enum.map(&(&1 * 2))
|> Enum.filter(&(rem(&1, 3) == 0))
|> Enum.take(5)
|> IO.inspect()स्ट्रीम बनाना
काम को टालने के लिए Enum को Stream से बदलें। जब तक कोई उपभोग करने वाला फ़ंक्शन नहीं बुलाया जाता, तब तक कुछ भी नहीं चलता।
stream =
1..1_000_000
|> Stream.map(&(&1 * 2))
|> Stream.filter(&(rem(&1, 3) == 0))
IO.inspect(stream)मूल्यांकन लागू करना
किसी Enum फ़ंक्शन (जैसे take या to_list) द्वारा मान खींचे जाने तक स्ट्रीम निष्क्रिय रहती है।
result =
1..1_000_000
|> Stream.map(&(&1 * 2))
|> Enum.take(5)
IO.inspect(result)स्ट्रीम कुशल क्यों होती हैं
आलसी पाइपलाइन चरणों को मिला देती हैं और पर्याप्त तत्व बनते ही रुक जाती हैं, जिससे बहुत बड़ी मध्यवर्ती सूचियों से बचा जा सकता है।
अनंत स्ट्रीम
Stream.iterate/2 अंतहीन क्रम बनाता है, जो आलसी मूल्यांकन के कारण सुरक्षित रहते हैं।
Stream.iterate(0, &(&1 + 1))
|> Enum.take(5)
|> IO.inspect()दोहराव के लिए Stream.cycle
Stream.cycle एक सीमित सूची को हमेशा दोहराता है, जो बदल-बदलकर मान देने के लिए उपयोगी है।
Stream.cycle(["a", "b", "c"])
|> Enum.take(7)
|> IO.inspect()Stream.unfold से निर्माण
Stream.unfold/2 एक स्थिति और अगला मान तथा नई स्थिति लौटाने वाले फ़ंक्शन से स्ट्रीम बनाता है।
Stream.unfold(1, fn n -> {n, n * 2} end)
|> Enum.take(5)
|> IO.inspect()फ़ाइल को पंक्ति-दर-पंक्ति स्ट्रीम करना
File.stream!/1 फ़ाइल को आलसपूर्वक, एक बार में एक पंक्ति पढ़ता है, इसलिए आप बहुत बड़ी फ़ाइलों को स्थिर मेमोरी में संसाधित कर सकते हैं।
# File.stream!("big.log")
# |> Stream.filter(&String.contains?(&1, "ERROR"))
# |> Enum.count()Stream.chunk_every
स्ट्रीम को आलसपूर्वक समूहों में बाँटें; सब कुछ लोड किए बिना काम को पृष्ठों में बाँटने के लिए यह उपयोगी है।
1..10
|> Stream.chunk_every(3)
|> Enum.to_list()
|> IO.inspect()Stream का चयन कब करें
बड़े डेटा-संग्रह, कई चरणों वाली पाइपलाइन, अनंत क्रम या IO के लिए Stream का उपयोग करें। छोटे संग्रहों के लिए, जहाँ सरलता अधिक महत्वपूर्ण हो, Enum का उपयोग करें।
त्वरित जाँच
आलसी मूल्यांकन के अपने ज्ञान की जाँच करें।
पुनरावलोकन
आपने आलसी मूल्यांकन सीखा:
Enumउत्सुक है;Streamआलसी और संयोज्य है- स्ट्रीम की गणना केवल तब होती है जब कोई
Enumफ़ंक्शन उसका उपभोग करता है - इनसे अनंत क्रम और स्थिर-मेमोरी फ़ाइल प्रसंस्करण संभव होता है
- बड़े या कई चरणों वाले पाइपलाइन के लिए स्ट्रीम और छोटे डेटा के लिए Enum को प्राथमिकता दें
एआई शिक्षक के साथ Elixir सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “Stream मॉड्यूल से आलसी मूल्यांकन” पाठ निःशुल्क है?
हाँ—“Stream मॉड्यूल से आलसी मूल्यांकन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Elixir और Phoenix: स्केलेबल बैकएंड विकास पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Elixir और Phoenix: स्केलेबल बैकएंड विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Stream मॉड्यूल से आलसी मूल्यांकन” में मैं क्या सीखूँगा?
Elixir स्ट्रीम का उपयोग करके बड़े या अनंत संग्रहों को कुशलतापूर्वक संसाधित करें, जो माँग के अनुसार मानों की गणना आलस्यपूर्वक करती हैं। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Elixir और Phoenix: स्केलेबल बैकएंड विकास का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Elixir और Phoenix: स्केलेबल बैकएंड विकास शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Elixir और Phoenix: स्केलेबल बैकएंड विकास शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“Stream मॉड्यूल से आलसी मूल्यांकन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Elixir और Phoenix: स्केलेबल बैकएंड विकास पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Elixir और Phoenix: स्केलेबल बैकएंड विकास पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- फ़ंक्शन, मॉड्यूल और पाइपलाइनिंग
- Enumerable संग्रहों के साथ कार्य करना
- पुनरावर्तन और उच्च-क्रम फ़ंक्शन
- Stream मॉड्यूल से आलसी मूल्यांकन