बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala · पाठ

ZIO की Composition

flatMap और for

पाठ 2, कुल 4 में से13 चरण

ZIO की Composition, CoddyKit पर बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

flatMap के साथ क्रमबद्ध निष्पादन

ZIO एक मोनाड है, इसलिए flatMap ऐसे प्रभावों की शृंखला बनाता है जिसमें प्रत्येक चरण पिछले परिणाम का उपयोग कर सकता है। त्रुटि और परिवेश के प्रकार अपने-आप संयोजित हो जाते हैं।

import zio._

val prog =
  ZIO.succeed(10).flatMap(n => Console.printLine(s"n = $n"))

for-comprehension

for-comprehension ZIO प्रभावों को क्रम से चलाने का प्रचलित तरीका है। यह शुद्ध रहते हुए अनिवार्य शैली के कोड जैसा पढ़ता है।

import zio._

val prog = for {
  _    <- Console.printLine("Enter name:")
  name <- Console.readLine
  _    <- Console.printLine(s"Hello, $name")
} yield ()

त्रुटि प्रकारों का संयोजन

जब आप अलग-अलग त्रुटि प्रकारों E1 और E2 वाले दो प्रभावों को संयोजित करते हैं, तो ZIO इनके सामान्य सुपरप्रकार, अर्थात सबसे छोटे ऊपरी बंध, का अनुमान लगाता है, जो अक्सर Throwable या कोई सीलबंद ट्रेट होता है।

zip और zipPar

zip दो प्रभावों को क्रमिक रूप से एक टपल में संयोजित करता है। zipPar उन्हें अलग-अलग फाइबर पर समवर्ती रूप से चलाता है।

import zio._

val seq: UIO[(Int, Int)] = ZIO.succeed(1).zip(ZIO.succeed(2))
val par: UIO[(Int, Int)] = ZIO.succeed(1).zipPar(ZIO.succeed(2))

zipRight और zipLeft

*> (zipRight) दूसरा परिणाम रखता है; <* (zipLeft) पहला परिणाम रखता है। दोनों प्रभावों को क्रम में चलाते हैं।

import zio._

val r = Console.printLine("log") *> ZIO.succeed(99)

foreach

ZIO.foreach किसी संग्रह के प्रत्येक तत्व के लिए एक प्रभाव चलाता है और परिणामों को एकत्र करता है, जैसे traverse।

import zio._

val prog = ZIO.foreach(List(1, 2, 3))(n => Console.printLine(n.toString))

foreachPar

ZIO.foreachPar प्रत्येक तत्व के प्रभाव को समवर्ती रूप से चलाता है — कई HTTP अनुरोधों जैसे समानांतर IO के लिए आदर्श।

import zio._

val ids = List(1, 2, 3)
val prog = ZIO.foreachPar(ids)(id => ZIO.succeed(id * 10))

सशर्त प्रभाव

ZIO.when किसी प्रभाव को तभी चलाता है जब कोई शर्त सत्य हो, और परिणाम का Option लौटाता है। ZIO.unless इसका उलटा है।

import zio._

def logIf(debug: Boolean) =
  ZIO.when(debug)(Console.printLine("debugging"))

लूप चलाना

ZIO.iterate और ZIO.loop प्रभाव-आधारित लूप बनाते हैं। repeatN किसी प्रभाव को निश्चित संख्या में फिर से चलाता है।

import zio._

val ticks = Console.printLine("tick").repeatN(2) // runs 3 times total

एक संयोजित कार्यप्रवाह

यहाँ एक कार्यप्रवाह योग की गणना करके उसे प्रिंट करता है। इसे for-comprehension में छोटे-छोटे ZIO चरणों से पूरी तरह संयोजित किया गया है।

import zio._

val workflow = for {
  a <- ZIO.succeed(20)
  b <- ZIO.succeed(22)
  _ <- Console.printLine(s"Sum: ${a + b}")
} yield ()

सादा Scala समकक्ष

तुलना के लिए वही तर्क उत्सुकता से निष्पादित होने वाले सादे Scala में दिया गया है। ZIO प्रभावों का निष्पादन टालता है और उन्हें प्रकार-प्रणाली में दर्ज करता है, लेकिन समान आउटपुट देता है।

object Main {
  def main(args: Array[String]): Unit = {
    val a = 20
    val b = 22
    println(s"Sum: ${a + b}")
  }
}

त्वरित जाँच

कौन-सा संयोजक सूची के प्रत्येक तत्व के लिए प्रभाव को समवर्ती रूप से चलाता है?

पुनरावलोकन

आपने इन साधनों से ZIO प्रभावों को संयोजित किया:

  • क्रमबद्ध निष्पादन के लिए flatMap / for
  • zip / zipPar, *>, <*
  • foreach / foreachPar
  • when / unless और लूप चलाना

अगला विषय: त्रुटि और निर्भरता चैनल।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Scala सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
39
पाठ
143

अक्सर पूछे जाने वाले प्रश्न

क्या “ZIO की Composition” पाठ निःशुल्क है?

हाँ—“ZIO की Composition” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“ZIO की Composition” में मैं क्या सीखूँगा?

flatMap और for आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“ZIO की Composition” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. ZIO Effect
  2. ZIO की Composition
  3. Error और Dependency Channels
  4. ZIO Apps चलाना
← बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पर वापस जाएँ