एफ # - मॉड्यूल

MSDN लाइब्रेरी के अनुसार, F # मॉड्यूल, बाइंडिंग के प्रकारों, मानों, फ़ंक्शन मानों और कोड जैसे F # कोड निर्माणों का एक समूह है। यह एक सामान्य भाषा रनटाइम (CLR) वर्ग के रूप में लागू किया गया है जिसमें केवल स्थिर सदस्य हैं।

इस स्थिति के आधार पर कि क्या पूरी फाइल को मॉड्यूल में शामिल किया गया है, दो प्रकार की मॉड्यूल घोषणाएं हैं -

  • शीर्ष स्तर के मॉड्यूल की घोषणा
  • स्थानीय मॉड्यूल की घोषणा

एक शीर्ष-स्तरीय मॉड्यूल घोषणा में पूरी फाइल को मॉड्यूल में शामिल किया जाता है। इस स्थिति में, फ़ाइल में पहली घोषणा मॉड्यूल घोषणा है। आपको शीर्ष-स्तरीय मॉड्यूल में घोषणाओं को इंडेंट करने की आवश्यकता नहीं है।

एक स्थानीय मॉड्यूल घोषणा में, केवल उस मॉड्यूल घोषणा के तहत इंडेंट होने वाली घोषणाएं मॉड्यूल का हिस्सा होती हैं।

वाक्य - विन्यास

मॉड्यूल घोषणा के लिए सिंटैक्स निम्नानुसार है -

// Top-level module declaration.
module [accessibility-modifier] [qualified-namespace.]module-name
   declarations

// Local module declaration.
module [accessibility-modifier] module-name =
   declarations

कृपया ध्यान दें कि पहुँच-संशोधक निम्नलिखित में से एक हो सकता है - सार्वजनिक, निजी, आंतरिक। डिफ़ॉल्ट हैpublic

निम्नलिखित उदाहरण अवधारणाओं को प्रदर्शित करेंगे -

उदाहरण 1

मॉड्यूल फ़ाइल Arithmetic.fs -

module Arithmetic
let add x y =
   x + y

let sub x y =
   x - y
	
let mult x y =
   x * y
	
let div x y =
   x / y

कार्यक्रम फ़ाइल main.fs -

// Fully qualify the function name.
open Arithmetic
let addRes = Arithmetic.add 25 9
let subRes = Arithmetic.sub 25 9
let multRes = Arithmetic.mult 25 9
let divRes = Arithmetic.div 25 9

printfn "%d" addRes
printfn "%d" subRes
printfn "%d" multRes
printfn "%d" divRes

जब आप प्रोग्राम को संकलित और निष्पादित करते हैं, तो यह निम्न आउटपुट देता है -

34
16
225
2
110
90
1000
10

उदाहरण 2

// Module1
module module1 =
   // Indent all program elements within modules that are declared with an equal sign.
   let value1 = 100
   let module1Function x =
      x + value1

// Module2
module module2 =
   let value2 = 200

   // Use a qualified name to access the function.
   // from module1.
   let module2Function x =
      x + (module1.module1Function value2)

let result = module1.module1Function 25
printfn "%d" result

let result2 = module2.module2Function 25
printfn "%d" result2

जब आप प्रोग्राम को संकलित और निष्पादित करते हैं, तो यह निम्न आउटपुट देता है -

125
325