F # - Spazi dei nomi

UN namespaceè progettato per fornire un modo per mantenere un insieme di nomi separato da un altro. I nomi delle classi dichiarati in uno spazio dei nomi non entreranno in conflitto con gli stessi nomi delle classi dichiarati in un altro.

Secondo la libreria MSDN, a namespace consente di organizzare il codice in aree di funzionalità correlate consentendo di allegare un nome a un raggruppamento di elementi del programma.

Dichiarazione di uno spazio dei nomi

Per organizzare il codice in uno spazio dei nomi, è necessario dichiarare lo spazio dei nomi come prima dichiarazione nel file. Il contenuto dell'intero file diventa quindi parte dello spazio dei nomi.

namespace [parent-namespaces.]identifier

L'esempio seguente illustra il concetto:

Esempio

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

Quando compili ed esegui il programma, restituisce il seguente output:

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