Lua Academy · पाठ

मानों के रूप में Functions

Functions सहेजें और आगे भेजें।

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

मानों के रूप में Functions, CoddyKit पर Lua Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Lua Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

फ़ंक्शन प्रथम-श्रेणी के होते हैं

Lua में फ़ंक्शन प्रथम-श्रेणी के मान होते हैं। इसका अर्थ है कि फ़ंक्शन केवल डेटा है: आप उसे किसी चर में रख सकते हैं, किसी दूसरे फ़ंक्शन को दे सकते हैं, उसे लौटा सकते हैं और तालिका में रख सकते हैं।

यही एक विचार समस्त कार्यात्मक प्रोग्रामिंग का आधार है। जब आप फ़ंक्शन को संख्याओं या पाठों की तरह मानते हैं, तो आप लचीले और पुनः उपयोग योग्य उपकरण बना सकते हैं।

किसी चर में फ़ंक्शन रखना

किसी फ़ंक्शन को दिया गया नाम वास्तव में उस फ़ंक्शन के मान को रखने वाला एक चर ही होता है। आप उस मान को स्वतंत्र रूप से किसी दूसरे चर को दे सकते हैं।

नीचे दिए गए दोनों नाम एक ही मूल फ़ंक्शन की ओर संकेत करते हैं, इसलिए किसी को भी बुलाने पर वही कोड चलता है।

local function greet(name)
  return "Hello, " .. name
end

local hi = greet
print(greet("Ada"))
print(hi("Lin"))

अनाम फ़ंक्शन

फ़ंक्शन बनाने के लिए आपको नाम की आवश्यकता नहीं होती। अनाम फ़ंक्शन function ... end वाक्य-विन्यास से लिखा जाता है और सीधे एक मान के रूप में उपयोग किया जाता है।

किसी अनाम फ़ंक्शन को स्थानीय चर में रखना सामान्य फ़ंक्शन परिभाषा जैसा ही है, बस उसे उसी जगह लिखा जाता है।

local square = function(x)
  return x * x
end

print(square(5))
print(square(9))

तर्कों के रूप में फ़ंक्शन

फ़ंक्शन मान होते हैं, इसलिए आप उन्हें दूसरे फ़ंक्शन में दे सकते हैं। जो फ़ंक्शन किसी दूसरे फ़ंक्शन को लेता है, उसे उच्च-क्रम फ़ंक्शन कहा जाता है।

यहाँ apply को तब तक पता नहीं होता कि कौन-सा कार्य करना है, जब तक आप उसे चलाने के लिए कोई फ़ंक्शन नहीं देते।

local function apply(f, x)
  return f(x)
end

local function double(n) return n * 2 end

print(apply(double, 10))
print(apply(function(n) return n + 1 end, 10))

फ़ंक्शन लौटाना

कोई फ़ंक्शन दूसरा फ़ंक्शन लौटा सकता है। इससे आप दिए गए तर्कों के अनुसार तैयार किए गए फ़ंक्शन आवश्यकता के अनुसार बना सकते हैं।

नीचे multiplier हर बार एक बिल्कुल नया फ़ंक्शन बनाता है और आपके दिए गए गुणक को याद रखता है।

local function multiplier(factor)
  return function(x)
    return x * factor
  end
end

local triple = multiplier(3)
print(triple(4))
print(multiplier(10)(5))

क्लोज़र चरों को अपने साथ रखते हैं

जब लौटाया गया फ़ंक्शन अपने आसपास के फ़ंक्शन के स्थानीय चर का उपयोग करता है, तो वह उस चर को अपने साथ रख लेता है। फ़ंक्शन और उसके साथ रखे गए चरों की इस जोड़ी को क्लोज़र कहा जाता है।

साथ रखा गया factor तब तक बना रहता है, जब तक क्लोज़र बना रहता है, भले ही बाहरी कॉल पूरी हो चुकी हो।

local function counter()
  local n = 0
  return function()
    n = n + 1
    return n
  end
end

local next = counter()
print(next())
print(next())
print(next())

तालिकाओं में फ़ंक्शन

तालिकाएँ किसी भी अन्य मान की तरह फ़ंक्शन रख सकती हैं। Lua इसी तरह मॉड्यूल और ऑब्जेक्ट बनाता है: एक तालिका नामों को फ़ंक्शन मानों से जोड़ती है।

आप कुंजी से कोई फ़ंक्शन खोजकर उसे बुला सकते हैं या कार्यों वाली तालिका पर पुनरावृत्ति भी कर सकते हैं।

local ops = {
  add = function(a, b) return a + b end,
  sub = function(a, b) return a - b end
}

print(ops.add(2, 3))
print(ops["sub"](9, 4))

रणनीतियों की तालिका

तालिका में फ़ंक्शन रखने से आप चलते समय कुंजी के आधार पर व्यवहार चुन सकते हैं। इससे लंबी if-else शृंखलाओं की जगह एक साफ़ खोज का उपयोग होता है।

नाम के आधार पर कार्य चुनने से बुलाने वाला कोड छोटा रहता है और नई कुंजियों के साथ उसका विस्तार आसानी से किया जा सकता है।

local dispatch = {
  upper = string.upper,
  lower = string.lower,
  rev = string.reverse
}

local function run(name, s)
  return dispatch[name](s)
end

print(run("upper", "lua"))
print(run("rev", "lua"))

पश्च-कॉल फ़ंक्शन

पश्च-कॉल फ़ंक्शन वह फ़ंक्शन है जिसे बाद में बुलाने के लिए आप पास करते हैं। Lua की मानक लाइब्रेरी इस तरीके का उपयोग करती है; उदाहरण के लिए, table.sort एक तुलना फ़ंक्शन लेता है।

नियम पश्च-कॉल फ़ंक्शन तय करता है; लूप चलाने और चीज़ों को पुनर्व्यवस्थित करने का काम लाइब्रेरी सँभालती है।

local nums = {5, 2, 9, 1}
table.sort(nums, function(a, b)
  return a > b
end)

print(table.concat(nums, ", "))

फ़ंक्शन की अलग पहचान होती है

हर फ़ंक्शन मान एक अलग वस्तु होता है। दो अलग फ़ंक्शन शाब्दिक रूप कभी समान नहीं होते, भले ही उनमें एक जैसा कोड हो।

लेकिन किसी एक फ़ंक्शन को दो चरों में रखने पर उनकी तुलना समान आती है, क्योंकि दोनों नाम उसी मान का संदर्भ देते हैं।

local f = function() return 1 end
local g = function() return 1 end
local h = f

print(f == g)
print(f == h)

यह क्यों महत्वपूर्ण है

फ़ंक्शन को मानों की तरह मानने से आप सामान्य उपकरण एक बार लिख सकते हैं और उन्हें दिए गए फ़ंक्शन के अनुसार अनुकूलित कर सकते हैं। मानचित्रण, छनाई, आंशिक अनुप्रयोग और संयोजन सभी इसी पर निर्भर करते हैं।

इस पाठ्यक्रम का बाकी भाग प्रथम-श्रेणी फ़ंक्शन और क्लोज़र पर आधारित व्यावहारिक तरीकों का निर्माण करता है।

त्वरित जाँच

Lua में प्रथम-श्रेणी फ़ंक्शन की अपनी समझ का परीक्षण करें।

पुनरावलोकन

Lua में फ़ंक्शन प्रथम-श्रेणी के मान हैं: उन्हें चरों और तालिकाओं में रखें, तर्कों के रूप में पास करें और दूसरे फ़ंक्शन से लौटाएँ।

ऐसा फ़ंक्शन लौटाने पर जो आसपास के स्थानीय चरों को अपने साथ रखता है, क्लोज़र बनता है। आगे आने वाले हर कार्यात्मक तरीके की नींव इन्हीं विचारों पर है।

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

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

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

पाठ्यक्रम
40
पाठ
159

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

क्या “मानों के रूप में Functions” पाठ निःशुल्क है?

हाँ — Lua Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “मानों के रूप में Functions” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“मानों के रूप में Functions” में मैं क्या सीखूँगा?

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

क्या Lua Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

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

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

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

क्या मैं इस Lua Academy पाठ में कोड लिख और चला सकता हूँ?

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

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

  1. मानों के रूप में Functions
  2. map, filter, reduce
  3. आंशिक अनुप्रयोग
  4. Functions को संयोजित करना
← Lua Academy पर वापस जाएँ