As per MSDN library, an F# module is a grouping of F# code
constructs, such as types, values, function values, and code in do
bindings. It is implemented as a common language runtime (CLR) class
that has only static members.
Depending upon the situation whether the whole file is included in the module, there are two types of module declarations −
In a local module declaration, only the declarations that are indented under that module declaration are part of the module.
The following examples will demonstrate the concepts −
Depending upon the situation whether the whole file is included in the module, there are two types of module declarations −
- Top-level module declaration
- Local module declaration
In a local module declaration, only the declarations that are indented under that module declaration are part of the module.
Syntax
Syntax for module declaration is as follows −// Top-level module declaration. module [accessibility-modifier] [qualified-namespace.]module-name declarations // Local module declaration. module [accessibility-modifier] module-name = declarationsPlease note that the accessibility-modifier can be one of the following − public, private, internal. The default is public.
The following examples will demonstrate the concepts −
Example 1
The module file 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 / yThe program file 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" divResWhen you compile and execute the program, it yields the following output −
34 16 225 2 110 90 1000 10
Example 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" result2When you compile and execute the program, it yields the following output −
125 325
No comments:
Post a Comment