Swift में कार्यात्मक प्रोग्रामिंग: मूल बातें और उदाहरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Swift में कार्यात्मक प्रोग्रामिंग का परिचय



Swift एक मल्टी-पैराडाइम प्रोग्रामिंग भाषा है, जिसे Apple ने iOS, macOS, watchOS और tvOS के लिए एप्लिकेशन बनाने के लिए विकसित किया है। ऑब्जेक्ट-ओरिएंटेड और प्रोटोकॉल-ओरिएंटेड दृष्टिकोणों के अलावा, Swift सक्रिय रूप से कार्यात्मक प्रोग्रामिंग का समर्थन करता है। यह शैली शुद्ध फ़ंक्शन, डेटा की अपरिवर्तनीयता और साइड इफेक्ट्स से बचने पर आधारित है।



कार्यात्मक प्रोग्रामिंग कोड को अधिक पूर्वानुमानित, परीक्षण योग्य और समानांतर रूप से सुरक्षित बनाती है। इस लेख में, हम Swift में कार्यात्मक दृष्टिकोण की प्रमुख अवधारणाओं को समझेंगे: अपरिवर्तनीयता, उच्च-क्रम फ़ंक्शन, क्लोज़र और मेथड चेनिंग। आप देखेंगे कि कैसे map, filter और reduce का उपयोग करके संक्षिप्त और अभिव्यंजक कोड लिखा जा सकता है।



Swift में कार्यात्मक दृष्टिकोण के मूल सिद्धांत



अपरिवर्तनीयता (इम्यूटेबिलिटी)



कार्यात्मक प्रोग्रामिंग में, डेटा बनने के बाद बदला नहीं जाता है। मौजूदा ऑब्जेक्ट को बदलने के बजाय एक नया ऑब्जेक्ट बनाया जाता है। Swift कॉन्स्टेंट घोषित करने के लिए let कीवर्ड के साथ इस दृष्टिकोण को प्रोत्साहित करता है।



// अपरिवर्तनीय मानlet numbers = [1, 2, 3, 4, 5]// numbers.append(6) // कंपाइलेशन एरर — numbers अपरिवर्तनीय है

// नया ऐरे बनानाlet newNumbers = numbers + [6]print(newNumbers) // [1, 2, 3, 4, 5, 6]


var के बजाय let का उपयोग करने से स्थिति में आकस्मिक परिवर्तनों से बचने और डीबगिंग को सरल बनाने में मदद मिलती है।



फ़ंक्शन प्रथम श्रेणी के ऑब्जेक्ट के रूप में



Swift में, फ़ंक्शन प्रथम श्रेणी के ऑब्जेक्ट हैं। उन्हें वेरिएबल्स को असाइन किया जा सकता है, तर्क के रूप में पास किया जा सकता है और अन्य फ़ंक्शन से वापस किया जा सकता है।



// वेरिएबल को असाइन किया गया फ़ंक्शनlet multiply: (Int, Int) -> Int = { $0 * $1 }print(multiply(3, 4)) // 12

// फ़ंक्शन जो दूसरे फ़ंक्शन को स्वीकार करता हैfunc applyOperation(_ a: Int, _ b: Int, operation: (Int, Int) -> Int) -> Int { return operation(a, b)}

let result = applyOperation(10, 5, operation: multiply)print(result) // 50


Swift में क्लोज़र (Closures)



क्लोज़र कार्यक्षमता के स्व-निहित ब्लॉक हैं जो आसपास के संदर्भ से वेरिएबल्स के संदर्भों को कैप्चर और स्टोर कर सकते हैं। Swift में, क्लोज़र का व्यापक रूप से कॉलबैक और कार्यात्मक रूपांतरणों के लिए उपयोग किया जाता है।



// सरल क्लोज़रlet greeting = { (name: String) -> String in    return "नमस्ते, \\(name)!"}print(greeting("दुनिया")) // नमस्ते, दुनिया!

// पैरामीटर के साथ संक्षिप्त रूपlet numbers = [3, 1, 4, 1, 5, 9]let sorted = numbers.sorted { $0 < $1 }print(sorted) // [1, 1, 3, 4, 5, 9]


क्लोज़र कोड को कॉम्पैक्ट और अभिव्यंजक बनाते हैं, खासकर कलेक्शन के साथ काम करते समय।



उच्च-क्रम फ़ंक्शन: map, filter, reduce



ये Swift में कार्यात्मक प्रोग्रामिंग के तीन स्तंभ हैं। ये स्पष्ट लूप के बिना ऐरे, डिक्शनरी और अन्य कलेक्शन को प्रोसेस करने की अनुमति देते हैं।



map — प्रत्येक तत्व का रूपांतरण



map मेथड प्रत्येक कलेक्शन तत्व पर एक क्लोज़र लागू करता है और परिणामों के साथ एक नया ऐरे लौटाता है।



let prices = [100, 200, 300, 400]let discounted = prices.map { $0 * 0.9 }print(discounted) // [90.0, 180.0, 270.0, 360.0]

// स्ट्रिंग के साथ काम करनाlet names = ["अन्ना", "बोरिस", "विक्टर"]let uppercased = names.map { $0.uppercased() }print(uppercased) // ["अन्ना", "बोरिस", "विक्टर"]


filter — शर्त के अनुसार चयन



filter एक नया ऐरे लौटाता है जिसमें केवल वे तत्व होते हैं जो दी गई शर्त को पूरा करते हैं।



let scores = [45, 78, 92, 33, 88, 61]let passingScores = scores.filter { $0 >= 60 }print(passingScores) // [78, 92, 88, 61]

// स्ट्रिंग फ़िल्टर करनाlet words = ["Swift", "iOS", "macOS", "फ़ंक्शन"]let shortWords = words.filter { $0.count <= 4 }print(shortWords) // ["iOS", "macOS"]

ब्लॉग

पुस्तक अनुशंसाएँ