Riferimenti per il linguaggio F#

Questa sezione è un riferimento per F#, un linguaggio di programmazione multi paradigma destinato a .NET. F# supporta modelli di programmazione funzionali, orientati agli oggetti e imperativi.

Organizzazione del codice F#

La tabella seguente illustra gli articoli di riferimento relativi all'organizzazione del codice F#.

Titolo Descrizione
Namespaces (Spazi dei nomi) Informazioni sul supporto dello spazio dei nomi in F#. Uno spazio dei nomi consente di organizzare il codice in aree di funzionalità correlate perché consente di collegare un nome a un raggruppamento di elementi di programma.
Moduli Informazioni sui moduli. Un modulo F# è simile a uno spazio dei nomi e può includere anche valori e funzioni. Il codice di raggruppamento nei moduli consente di tenere insieme il codice correlato e consente di evitare conflitti di nome nel programma.
open Dichiarazioni Informazioni sul funzionamento open . Una open dichiarazione specifica un modulo, uno spazio dei nomi o un tipo i cui elementi è possibile fare riferimento senza usare un nome completo.
Firme Informazioni sulle firme e sui file di firma. Un file della firma contiene informazioni sulle firme pubbliche di un set di elementi del programma F#, ad esempio i tipi, gli spazi dei nomi e i moduli. Può essere usato per specificare l'accessibilità di questi elementi del programma.
Controllo dell’accesso Informazioni sul controllo di accesso in F#. Il controllo di accesso significa dichiarare quali client sono in grado di usare determinati elementi del programma, ad esempio tipi, metodi, funzioni e così via.
Documentazione XML Informazioni sul supporto per la generazione di file di documentazione dai commenti dei documenti XML, noti anche come commenti a barre triple. È possibile produrre documentazione dai commenti di codice in F# come in altri linguaggi .NET.

Valori letterali e stringhe

La tabella seguente illustra gli articoli di riferimento che descrivono valori letterali e stringhe in F#.

Titolo Descrizione
Valori letterali Informazioni sulla sintassi per i valori letterali in F# e su come specificare le informazioni sul tipo per i valori letterali F#.
Stringhe Informazioni sulle stringhe in F#. Il tipo string rappresenta un testo non modificabile come sequenza di caratteri Unicode. string è un alias per System.String in .NET.
Stringhe interpolate Informazioni sulle stringhe interpolate, una forma speciale di stringa che consente di incorporare espressioni F# direttamente all'interno di esse.

Valori e funzioni

La tabella seguente illustra gli articoli di riferimento che descrivono i concetti relativi al linguaggio relativi a valori, letassociazioni e funzioni.

Titolo Descrizione
Valori Informazioni sui valori, che sono quantità non modificabili con un tipo specifico; i valori possono essere numeri integrali o a virgola mobile, caratteri o testo, elenchi, sequenze, matrici, tuple, unioni discriminate, record, tipi di classe o valori di funzione.
Funzioni Le funzioni sono l'unità fondamentale di esecuzione di un programma in qualsiasi linguaggio di programmazione. Una funzione F# ha un nome, può avere parametri e accettare argomenti e ha un corpo. F# supporta anche i costrutti di programmazione funzionale, ad esempio l'uso di funzioni come valori, l'uso di funzioni senza nome nelle espressioni, composizione di funzioni per creare nuove funzioni, funzioni sottoposte a currying e la definizione implicita di funzioni attraverso l'applicazione parziale di argomenti di funzioni.
Espressioni di funzione Informazioni su come usare la parola chiave "fun" F# per definire un'espressione lambda, ovvero una funzione anonima.

Cicli e condizionali

La tabella seguente elenca gli articoli che descrivono cicli F# e condizionali.

Titolo Descrizione
Espressioni condizionali: if...then...else Informazioni sull'espressione if...then...else , che esegue rami di codice diversi e restituisce anche un valore diverso a seconda dell'espressione booleana specificata.
Cicli: espressione for...in Informazioni sull'espressione for...in , un costrutto di ciclo usato per scorrere le corrispondenze di un criterio in una raccolta enumerabile, ad esempio un'espressione di intervallo, una sequenza, un elenco, una matrice o un altro costrutto che supporta l'enumerazione.
Cicli: espressione for...to Informazioni sull'espressione, usata per eseguire l'iterazione for...to in un ciclo su un intervallo di valori di una variabile di ciclo.
Cicli: espressione while...do Informazioni sull'espressione , usata per eseguire l'esecuzione while...do iterativa (ciclo) mentre una condizione di test specificata è true.

Criteri di ricerca

La tabella seguente illustra gli articoli di riferimento che descrivono i concetti del linguaggio.

Titolo Descrizione
Criteri Informazioni sui modelli, che sono regole per la trasformazione dei dati di input e vengono usati in F#. È possibile confrontare i dati con un modello, scomporre i dati in parti costitutive o estrarre informazioni dai dati in vari modi.
Espressioni match Informazioni sull'espressione match , che fornisce il controllo di diramazione basato sul confronto di un'espressione con un set di modelli.
Criteri attivi Informazioni sui modelli attivi. I modelli attivi consentono di definire partizioni denominate che suddividono i dati di input. È possibile usare i criteri attivi per decomporre i dati in modo personalizzato per ogni partizione.

Gestione delle eccezioni

La tabella seguente illustra gli articoli di riferimento che descrivono i concetti relativi al linguaggio correlati alla gestione delle eccezioni.

Titolo Descrizione
Gestione delle eccezioni Contiene informazioni sul supporto per la gestione delle eccezioni in F#.
Espressione try...with Informazioni su come usare l'espressione per la try...with gestione delle eccezioni.
Espressione try...finally Informazioni su come l'espressione F# try...finally consente di eseguire codice di pulizia anche se un blocco di codice genera un'eccezione.
Parola use chiave Informazioni sulle parole chiave use e using, che possono controllare l'inizializzazione e il rilascio delle risorse.
Asserzioni Informazioni sull'espressione assert , ovvero una funzionalità di debug che è possibile usare per testare un'espressione. In caso di errore in modalità Debug, un'asserzione genera una finestra di dialogo di errore di sistema.

Tipi e inferenza dei tipi

La tabella seguente illustra gli articoli di riferimento che descrivono il funzionamento dei tipi e dell'inferenza dei tipi in F#.

Titolo Descrizione
Tipi Informazioni sui tipi usati in F# e su come vengono denominati e descritti i tipi F#.
Tipi di base Informazioni sui tipi fondamentali usati in F#. Specifica anche i tipi .NET corrispondenti e i valori minimi e massimi per ogni tipo.
Tipo di unità Informazioni sul unit tipo, ovvero un tipo che indica l'assenza di un valore specifico. Il unit tipo ha solo un singolo valore, che funge da segnaposto quando non esiste alcun altro valore o è necessario.
Abbreviazioni dei tipi Informazioni sulle abbreviazioni dei tipi, che sono nomi alternativi per i tipi.
Inferenza Informazioni sul modo in cui il compilatore F# inferisce i tipi di valori, variabili, parametri e valori restituiti.
Cast e conversioni Informazioni sul supporto per le conversioni dei tipi in F#.
Generics Informazioni sui costrutti generici in F#.
Generalizzazione automatica Informazioni su come F# generalizza automaticamente gli argomenti e i tipi di funzioni in modo che funzionino con più tipi quando possibile.
Vincoli Informazioni sui vincoli applicabili ai parametri di tipo generici per specificare i requisiti per un argomento di tipo in un tipo generico o in una funzione.
Tipi flessibili Informazioni sui tipi flessibili. Un'annotazione di tipo flessibile è un'indicazione che un parametro, una variabile o un valore ha un tipo compatibile con il tipo specificato, in cui la compatibilità è determinata dalla posizione in una gerarchia orientata agli oggetti di classi o interfacce.
Unità di misura Informazioni sulle unità di misura. I valori a virgola mobile in F# possono avere unità di misura associate, che sono in genere usate per indicare lunghezza, volume, massa e così via.
Byref Informazioni sui tipi byref e byref simili in F#, usati per la programmazione a basso livello.

Tuple, elenchi, raccolte, opzioni

La tabella seguente illustra gli articoli di riferimento che descrivono i tipi supportati da F#.

Titolo Descrizione
Tuple Informazioni sulle tuple, che sono raggruppamenti di valori non denominati, ma ordinati di tipi possibilmente diversi.
raccolte Panoramica dei tipi di raccolte funzionali di F#, inclusi i tipi per matrici, elenchi, sequenze (seq), mappe e set.
Elenchi Informazioni sugli elenchi. Un elenco in F# è una serie ordinata e non modificabile di elementi dello stesso tipo.
Opzioni Informazioni sul tipo di opzione. Un'opzione in F# viene usata quando un valore può esistere o meno. Un'opzione ha un tipo sottostante e può contenere un valore di tale tipo o nessun valore.
Matrici Informazioni sulle matrici. Le matrici sono sequenze di dimensioni fisse, in base zero, o modificabili di elementi di dati consecutivi dello stesso tipo.
Sequenze Informazioni sulle sequenze. Una sequenza è una serie logica di elementi dello stesso tipo. I singoli elementi della sequenza vengono calcolati solo se necessario, quindi la rappresentazione può essere minore di un conteggio di elementi letterali indica.
Espressioni di sequenza Informazioni sulle espressioni di sequenza, che consentono di generare sequenze di dati su richiesta.
Celle di riferimento Informazioni sulle celle di riferimento, che sono posizioni di archiviazione che consentono di creare variabili modificabili con semantica di riferimento.

Record e unioni discriminate

La tabella seguente illustra gli articoli di riferimento che descrivono le definizioni dei tipi di unione record e discriminate supportate da F#.

Titolo Descrizione
Record Informazioni sui record. I record rappresentano aggregazioni semplici di valori denominati, facoltativamente con membri.
Record anonimi Informazioni su come costruire e usare record anonimi, una funzionalità del linguaggio che consente di manipolare i dati.
Unioni discriminate Informazioni sulle unioni discriminate, che forniscono supporto per i valori che possono essere una delle varie case denominate, ognuna con valori e tipi possibilmente diversi.
Struct Informazioni sugli struct, che sono tipi di oggetti compatta che possono essere più efficienti di una classe per i tipi con una piccola quantità di dati e un comportamento semplice.
Enumerazioni Le enumerazioni sono tipi con un set definito di valori denominati. È possibile usarle in sostituzione ai valori letterali per rendere il codice più leggibile e gestibile.

Programmazione oggetti

Nella tabella seguente vengono illustrati gli articoli di riferimento che descrivono la programmazione degli oggetti F#.

Titolo Descrizione
Classi Informazioni sulle classi, ovvero tipi che rappresentano oggetti che possono avere proprietà, metodi ed eventi.
Interfacce Informazioni sulle interfacce, che specificano set di membri correlati implementati da altre classi.
Classi astratte Informazioni sulle classi astratte, che sono classi che lasciano alcuni o tutti i membri non implementati, in modo che le implementazioni possano essere fornite dalle classi derivate.
Estensioni di tipo Informazioni sulle estensioni dei tipi, che consentono di aggiungere nuovi membri a un tipo di oggetto definito in precedenza.
Delegati Informazioni sui delegati, che rappresentano una chiamata di funzione come oggetto.
Ereditarietà Informazioni sull'ereditarietà, usata per modellare la relazione "is-a" o la sotto digitazione, nella programmazione orientata agli oggetti.
Members Informazioni sui membri dei tipi di oggetti F#.
Parametri e argomenti Informazioni sul supporto del linguaggio per la definizione dei parametri e il passaggio di argomenti a funzioni, metodi e proprietà. Include informazioni su come passare valori in base al riferimento.
Overload dell'operatore Informazioni su come eseguire l'overload di operatori aritmetici in una classe o in un tipo di record e a livello globale.
Espressioni di oggetto Informazioni sulle espressioni di oggetto, espressioni che creano nuove istanze di un tipo di oggetto anonimo creato in modo dinamico basato su un tipo di base, un'interfaccia o un set di interfacce esistente.

Asincrona, attività e lazy

Nella tabella seguente sono elencati gli argomenti che descrivono espressioni asincrone, attività e lazy F#.

Titolo Descrizione
Espressioni asincrone Informazioni sulle espressioni asincrone, che consentono di scrivere codice asincrono in modo molto vicino al modo in cui si scriverebbe naturalmente codice sincrono.
Espressioni attività Informazioni sulle espressioni di attività, che rappresentano un modo alternativo per scrivere codice asincrono usato durante l'interoperabilità con il codice .NET che utilizza o produce attività .NET.
Espressioni lazy Informazioni sulle espressioni lazy, che sono calcoli che non vengono valutati immediatamente, ma vengono invece valutati quando il risultato è effettivamente necessario.

Espressioni di calcolo e query

Nella tabella seguente sono elencati gli argomenti che descrivono espressioni e query di calcolo F#.

Titolo Descrizione
Espressioni di calcolo Informazioni sulle espressioni di calcolo in F#, che offrono una sintassi pratica per la scrittura di calcoli che possono essere sequenziati e combinati usando costrutti e associazioni del flusso di controllo. Possono essere usati per gestire i dati, il controllo e gli effetti collaterali nei programmi funzionali.
Espressioni di query Informazioni sulle espressioni di query, una funzionalità del linguaggio che implementa LINQ for F# e consente di scrivere query su un'origine dati o una raccolta enumerabile.

Attributi, reflection, virgolette e formattazione testo normale

La tabella seguente elenca gli articoli che descrivono le funzionalità riflettenti di F#, inclusi attributi, virgolette, nameofe formattazione di testo normale.

Titolo Descrizione
Attributes (Attributi) Informazioni su come gli attributi F# consentono l'applicazione dei metadati a un costrutto di programmazione.
nameof Informazioni sull'operatore nameof , una funzionalità di metaprogrammazione che consente di produrre il nome di qualsiasi simbolo nel codice sorgente.
Informazioni sul chiamante Informazioni su come usare gli attributi dell'argomento info chiamante per ottenere informazioni sul chiamante da un metodo.
Identificatori di riga, di file e di percorso di origine Informazioni sugli identificatori __LINE__, __SOURCE_DIRECTORY__e __SOURCE_FILE__, che sono valori predefiniti che consentono di accedere al numero di riga di origine, alla directory e al nome del file nel codice.
Citazioni di codice Informazioni sulle virgolette di codice, una funzionalità del linguaggio che consente di generare e usare espressioni di codice F# a livello di codice.
Formattazione del testo normale Informazioni su come usare sprintf e altre formattazioni di testo normale in applicazioni e script F#.

Provider di tipi

La tabella seguente elenca gli articoli che descrivono i provider di tipi F#.

Titolo Descrizione
Provider di tipi Informazioni sui provider di tipi e collegamenti alle procedure dettagliate sull'uso dei provider di tipi predefiniti per accedere a database e servizi Web.
Creare un provider di tipi Informazioni su come creare provider di tipi F# personalizzati esaminando diversi provider di tipi semplici che illustrano i concetti di base.

Informazioni di riferimento sulle API della libreria di base F#

Informazioni di riferimento sulle API F# Core Library (FSharp.Core) sono le informazioni di riferimento per tutti gli spazi dei nomi, i moduli, i tipi e le funzioni della libreria di base F#.

Tabelle di riferimento

La tabella seguente illustra gli articoli di riferimento che forniscono tabelle di parole chiave, simboli e valori letterali usati come token in F#.

Titolo Descrizione
Riferimento per parole chiave Contiene collegamenti a informazioni su tutte le parole chiave del linguaggio F#.
Riferimenti per simboli e operatori Contiene una tabella di simboli e operatori usati in F#.

Costrutti supportati dal compilatore

La tabella seguente elenca argomenti che descrivono costrutti speciali supportati dal compilatore.

Argomento Descrizione
Opzioni del compilatore Descrive le opzioni della riga di comando per il compilatore F#.
Direttive per il compilatore Vengono descritte le direttive del processore e le direttive del compilatore supportate dal compilatore F#.