उच्च-क्रम के कार्य: कार्यात्मक प्रोग्रामिंग में एक शक्तिशाली उपकरण

May 03 2023
यदि आप जावास्क्रिप्ट सीख रहे हैं, तो आप हायर-ऑर्डर फ़ंक्शंस शब्द से परिचित हो सकते हैं। सरल शब्दों में, उच्च-क्रम के कार्य ऐसे कार्य हैं जो अन्य कार्यों पर काम करते हैं।

यदि आप जावास्क्रिप्ट सीख रहे हैं, तो आप हायर-ऑर्डर फ़ंक्शंस शब्द से परिचित हो सकते हैं। सरल शब्दों में, उच्च-क्रम के कार्य ऐसे कार्य हैं जो अन्य कार्यों पर काम करते हैं। वे कार्यों को तर्क के रूप में ले सकते हैं या उन्हें आउटपुट के रूप में वापस कर सकते हैं।

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

जावास्क्रिप्ट कार्यों को प्रथम श्रेणी के नागरिकों के रूप में मानता है। ऐसा इसलिए है क्योंकि कार्य वस्तुएं हैं। हम कार्यों में गुण जोड़ सकते हैं जैसे हम वस्तुओं के साथ करते हैं। उदाहरण के लिए:

function greeting() {
  console.log('Hello World');
}

// We can add properties to functions like we do with objects
greeting.lang = 'English';

// Prints 'English'
console.log(greeting.lang);

अब जब हम जानते हैं कि प्रथम श्रेणी के कार्य क्या हैं, तो आइए जावास्क्रिप्ट में उच्च-क्रम के कार्यों में गोता लगाएँ।

बिल्ट-इन हाई-ऑर्डर फ़ंक्शंस के कुछ उदाहरणों में शामिल हैं नीचे सूचीबद्ध कई बिल्ट-इन हाई-ऑर्डर फ़ंक्शंस में से कुछ हैं:

  • ऐरे.प्रोटोटाइप.मैप ()
  • ऐरे.प्रोटोटाइप.फ़िल्टर ()
  • Array.prototype.reduce ()
  • Array.prototype.forEach ()
  • EventTarget.addEventListener ()

1- Array.prototype.map(): यह उच्च-क्रम फ़ंक्शन मूल सरणी में प्रत्येक तत्व पर प्रदान किए गए फ़ंक्शन को कॉल करके एक नई सरणी बनाता है। प्रदान किया गया फ़ंक्शन प्रत्येक तत्व को किसी तरह से रूपांतरित कर सकता है। उदाहरण के लिए, यदि आपके पास संख्याओं की एक सरणी है और आप प्रत्येक संख्या को दोगुना करना चाहते हैं, तो आप mapइस तरह उपयोग कर सकते हैं:

const originalArray = [1, 2, 3];
const doubledArray = originalArray.map(num => num * 2);
// doubledArray is now [2, 4, 6]

const originalArray = [1, 2, 3, 4, 5, 6];
const evenArray = originalArray.filter(num => num % 2 === 0);
// evenArray is now [2, 4, 6]

const originalArray = [1, 2, 3, 4, 5];
const sum = originalArray.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
// sum is now 15

const names = ['Alice', 'Bob', 'Charlie'];
names.forEach(name => console.log(name));
// this will log "Alice", "Bob", and "Charlie" to the console

const button = document.getElementById('myButton');
button.addEventListener('click', () => alert('Button clicked!'));
// this will show an alert when the button is clicked

इस बिंदु तक, हमने भाषा में निर्मित विभिन्न उच्च-क्रम के कार्यों को देखा। अब चलिए अपना खुद का हायर-ऑर्डर फंक्शन बनाते हैं। सादगी के लिए, आइए एक उच्च-क्रम फ़ंक्शन बनाएं जो संख्याओं की एक सरणी और कॉलबैक फ़ंक्शन को तर्कों के रूप में लेता है, और एक नया सरणी देता है जहां प्रत्येक तत्व कॉलबैक फ़ंक्शन को मूल सरणी में संबंधित तत्व पर लागू करने का परिणाम होता है। .

function mapArray(arr, callback) {
  const result = [];
  for (let i = 0; i < arr.length; i++) {
    result.push(callback(arr[i]));
  }
  return result;
}

आइए एक उदाहरण देखें कि हम इस उच्च-क्रम फ़ंक्शन का उपयोग कैसे कर सकते हैं:

const numbers = [1, 2, 3, 4, 5];

function multiplyByTwo(num) {
  return num * 2;
}

const doubledNumbers = mapArray(numbers, multiplyByTwo);

console.log(doubledNumbers); // Output: [2, 4, 6, 8, 10]

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

निष्कर्ष

संक्षेप में, हमने उच्च-क्रम के कार्यों की अवधारणा और उपलब्ध विभिन्न अंतर्निहित उच्च-क्रम कार्यों की खोज की है। इसके अतिरिक्त, हमने सीखा है कि अपने स्वयं के उच्च-क्रम के कार्यों को कैसे बनाया जाए। इन कार्यों में अन्य कार्यों को तर्क और आउटपुट के रूप में प्राप्त करने और वापस करने की अद्वितीय क्षमता होती है, जिससे वे प्रोग्रामिंग में एक शक्तिशाली उपकरण बन जाते हैं। यदि आपको यह लेख उपयोगी लगा हो, तो कृपया क्लैपिंग पर विचार करें, मुझे मीडियम पर फॉलो करें और यदि आपके कोई प्रश्न या चिंताएँ हैं तो टिप्पणी छोड़ने में संकोच न करें। पढ़ने के लिए आपका शुक्रिया!