F #: espacios de nombres

UNA namespaceestá diseñado para proporcionar una forma de mantener un conjunto de nombres separado de otro. Los nombres de clase declarados en un espacio de nombres no entrarán en conflicto con los mismos nombres de clase declarados en otro.

Según la biblioteca de MSDN, un namespace le permite organizar el código en áreas de funcionalidad relacionada al permitirle adjuntar un nombre a una agrupación de elementos del programa.

Declarar un espacio de nombres

Para organizar su código en un espacio de nombres, debe declarar el espacio de nombres como la primera declaración en el archivo. El contenido de todo el archivo pasa a formar parte del espacio de nombres.

namespace [parent-namespaces.]identifier

El siguiente ejemplo ilustra el concepto:

Ejemplo

namespace testing

module testmodule1 =
   let testFunction x y =
      printfn "Values from Module1: %A %A" x y
module testmodule2 =
   let testFunction x y =
      printfn "Values from Module2: %A %A" x y

module usermodule =
   do
      testmodule1.testFunction ( "one", "two", "three" ) 150
      testmodule2.testFunction (seq { for i in 1 .. 10 do yield i * i }) 200

Cuando compila y ejecuta el programa, produce el siguiente resultado:

Values from Module1: ("one", "two", "three") 150
Values from Module2: seq [1; 4; 9; 16; ...] 200