ट्रैक
/
Elixir
Elixir
/
सिलेबस
/
अनाम फंक्शन
अन

अनाम फंक्शन में Elixir

4 अभ्यास

अनाम फंक्शन के बारे में

अनाम फंक्शन का इस्तेमाल Elixir में अकेले भी खूब होता है, रिटर्न वैल्यू के रूप में भी, और Enum.map/2 जैसे हायर ऑर्डर फंक्शन के आर्गुमेंट के रूप में भी:

Enum.map([1, 2, 3], fn n -> n + 1 end)
# => [2, 3, 4]

Elixir में फंक्शन को प्रथम श्रेणी का दर्जा दिया जाता है:

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

अनाम फंक्शन fn कीवर्ड से बनाए जाते हैं और डॉट (.) लगाकर कॉल किए जाते हैं:

function_variable = fn n -> n + 1 end

function_variable.(1)
# => 2

अनाम फंक्शन & कैप्चर शॉर्टहैंड से भी बनाए जा सकते हैं।

  • शुरू का & बताता है कि कैप्चर एक्सप्रेशन यहाँ से शुरू होता है।

  • &1, &2 वगैरह अनाम फंक्शन के पोज़िशनल आर्गुमेंट बताते हैं।

    # Instead of:
    fn x, y -> abs(x) + abs(y) end
    
    # We can write:
    &(abs(&1) + abs(&2))
    
  • & कैप्चर ऑपरेटर का इस्तेमाल किसी मौजूदा नामित फंक्शन को कैप्चर करने के लिए भी किया जा सकता है:

    # Instead of:
    fn a, b -> a <= b end
    
    # We can capture the function using its name and arity:
    &<=/2
    

Elixir में अनाम फंक्शन क्लोज़र होते हैं। फंक्शन बनाते समय जो वेरिएबल स्कोप में होते हैं, ये उन्हें इस्तेमाल कर सकते हैं। अनाम फंक्शन के अंदर असाइन किए गए वेरिएबल उसके बाहर इस्तेमाल नहीं किए जा सकते:

y = 2

square = fn ->
  x = 3
  x * y
end

square.()
# => 6

x
# => ** (CompileError): undefined function x/0
GitHub के ज़रिए संपादित करें यह लिंक नई विंडो या टैब में खुलता है।

अनाम फंक्शन सीखिए

अभ्यास लॉक है

अनाम फंक्शन पर अभ्यास करने के लिए 1 और अभ्यास अनलॉक कीजिए