नेपाली नेपालीDOCS
GitHub

कार्यहरू

कार्य (function) भनेको नाम दिइएको कोडको ब्लक हो जसलाई जतिखेर पनि कल गर्न सकिन्छ। कार्यले कोड दोहोर्‍याउनु पर्दैन, एउटै तर्क एक ठाउँमा राख्छ र प्रोग्राम साना एकाइमा विभाजित हुन्छ।

१. कार्य घोषणा

कार्य कार्य कीवर्डले सुरु हुन्छ, नाम त्यसपछि, प्यारामिटर (...) मा, र शरीर अन्त्य सम्म:

कार्य नमस्ते()
    लेख "नमस्ते!"
अन्त्य

नमस्ते()        # कल गर्ने
नमस्ते()        # जति पटक पनि
# आउटपुट:
# नमस्ते!
# नमस्ते!

घोषणा गर्दा कोड चल्दैन — कल (नमस्ते()) गर्दा मात्र चल्छ। कार्य पहिला परिभाषित भएर पछि कल गर्नुपर्छ।

२. प्यारामिटर सहित

प्यारामिटरले कार्यलाई इनपुट दिन्छ। हरेक प्यारामिटरको नामभन्दा अगाडि प्रकार लेख्नु राम्रो अभ्यास हो:

कार्य स्वागत(पाठ नाम)
    लेख "नमस्ते, " + नाम + "!"
अन्त्य

स्वागत("राम")    # आउटपुट: नमस्ते, राम!
स्वागत("सीता")   # आउटपुट: नमस्ते, सीता!

३. फर्क मान (Return Value)

कार्यले फर्काऊ ले मान फर्काउँछ, जुन चरमा राख्न वा सीधै प्रयोग गर्न सकिन्छ। -> ले फर्क प्रकार बताउँछ:

कार्य जोड(पूर्णाङ्क ए, पूर्णाङ्क बी) -> पूर्णाङ्क
    फर्काऊ ए + बी
अन्त्य

राख परिणाम = जोड(५, ३)    # ८
लेख परिणाम + १०            # १८

फर्क प्रकार दिनुभन्दा अघि — उदाहरण, क्षेत्रफल:

कार्य क्षेत्रफल(दशमलव अर्धव्यास) -> दशमलव
    फर्काऊ ३.१४१५९ * अर्धव्यास * अर्धव्यास
अन्त्य

लेख क्षेत्रफल(५.०)   # ७८.५३९७५
कुरा: फर्काऊ चल्नेबित्तिकै कार्य समाप्त हुन्छ — पछाडिको कोड चल्दैन। केही फर्काउनु पर्दैन भने फर्काऊ बिना पनि हुन्छ।

४. धेरै प्यारामिटर

कार्य औसत(पूर्णाङ्क ए, पूर्णाङ्क बी, पूर्णाङ्क सी) -> दशमलव
    फर्काऊ (ए + बी + सी) / ३
अन्त्य

लेख औसत(५, १०, १५)   # १०.०

५. कार्य भित्र कार्य (क्लोजर)

कार्यले आफ्नो वरिपरिको दायराका चरहरू कैद गर्छ र कलहरूबीच ती चरको अवस्था राख्न सक्छ। यसरी एउटा कार्यबाट अर्को कार्य फर्काउन पनि सकिन्छ:

कार्य काउन्टर_बनाउ()
    राख ग = ०

    कार्य भित्री()
        ग = ग + १
        फर्काऊ ग
    अन्त्य

    फर्काऊ भित्री
अन्त्य

राख गणक = काउन्टर_बनाउ()
लेख गणक()   # १
लेख गणक()   # २
लेख गणक()   # ३

हरेक पटक काउन्टर_बनाउ() कल गर्दा नयाँ स्वतन्त्र गणक बन्छ — हरेकको आफ्नै हुन्छ।

६. रिकर्सन (Recursion)

कार्यले आफैंलाई कल गर्न सक्छ। हरेक रिकर्सिभ कार्यमा रोकिने सर्त (base case) हुनुपर्छ, होइन भने अनन्त कल हुन्छ:

कार्य फ्याक्टोरियल(पूर्णाङ्क न) -> पूर्णाङ्क
    यदि न <= १        # रोकिने सर्त
        फर्काऊ १
    अन्त्य
    फर्काऊ न * फ्याक्टोरियल(न - १)
अन्त्य

लेख फ्याक्टोरियल(५)   # १२०
कसरी चल्छ: फ्याक्टोरियल(५)५ * फ्याक्टोरियल(४)५ * ४ * फ्याक्टोरियल(३) ... → ५*४*३*२*१। सर्त न <= १ आइपुग्दा फर्किन थाल्छ।

७. पूरा उदाहरण

रिकर्सन र लुप मिसाइएको — फिबोनाची श्रेणी:

कार्य फिबोनाची(पूर्णाङ्क न) -> पूर्णाङ्क
    यदि न <= १
        फर्काऊ न
    अन्त्य
    फर्काऊ फिबोनाची(न - १) + फिबोनाची(न - २)
अन्त्य

राख सङ्ख्याहरू = [१, २, ३, ४, ५, ६, ७, ८, ९, १०]
प्रत्येक सङ्ख्या भित्र सङ्ख्याहरू
    लेख फिबोनाची(सङ्ख्या)
अन्त्य
# आउटपुट: १ १ २ ३ ५ ८ १३ २१ ३४ ५५

कार्य बुझिसकेपछि अर्को ठूलो अवधारणा बाँकी छ — क्लास (OOP), जहाँ डाटा र यससँग सम्बन्धित कार्यहरू वस्तुमा जोडिन्छन्।