Riferimenti per il linguaggio F#

In questa sezione vengono fornite informazioni di riferimento relative al linguaggio F#, un linguaggio di programmazione multi-paradigma destinato alla piattaforma .NET.Il linguaggio F# supporta modelli di programmazione funzionale, orientata a oggetti e imperativa.

Token F#

Nella tabella seguente sono indicati gli argomenti di riferimento che includono tabelle di parole chiave, simboli e valori letterali utilizzati come token in F#.

Titolo

Descrizione

Riferimento per parole chiave (F#)

Sono inclusi collegamenti a informazioni su tutte le parole chiave del linguaggio F#.

Riferimenti per simboli e operatori (F#)

È inclusa una tabella di simboli e operatori utilizzati nel linguaggio F#.

Valori letterali (F#)

Viene descritta la sintassi dei valori letterali in F# e viene illustrato come specificare le informazioni sui tipi per i valori letterali F#.

Concetti del linguaggio F#

Nella tabella seguente sono indicati gli argomenti di riferimento disponibili in cui sono descritti i concetti del linguaggio.

Titolo

Descrizione

Funzioni (F#)

Le funzioni sono l'unità fondamentale di esecuzione dei programmi in qualsiasi linguaggio di programmazione.Come per gli altri linguaggi, una funzione F# ha un nome, può disporre di parametri e accettare argomenti e ha un corpo.F# supporta inoltre costrutti di programmazione funzionale, ad esempio l'utilizzo di funzioni come valori, l'utilizzo di funzioni senza nome nelle espressioni, la composizione di funzioni per formare nuove funzioni, le funzioni sottoposte a currying e la definizione implicita di funzioni tramite applicazione parziale degli argomenti della funzione.

Tipi F#

Vengono descritti i tipi utilizzati in F# e le modalità di assegnazione del nome e descrizione per tali tipi.

Inferenza del tipo (F#)

Viene descritto in che modo avviene l'inferenza dei tipi di valori, variabili, parametri e valori restituiti da parte del compilatore F#.

Generalizzazione automatica (F#)

Vengono descritti i costrutti generici in F#.

Ereditarietà (C#)

Viene descritta l'ereditarietà, utilizzata per modellare la relazione di tipo "è", o definizione di sottotipo, nella programmazione orientata a oggetti.

Membri (F#)

Vengono descritti i membri dei tipi di oggetti F#.

Parametri e argomenti (F#)

Viene descritto il supporto del linguaggio per la definizione di parametri e il passaggio di argomenti a funzioni, metodi e proprietà.Sono incluse informazioni sul passaggio per riferimento.

Overload degli operatori (F#)

Viene descritto come eseguire l'overload di operatori aritmetici in un tipo di record o classe e a livello globale.

Cast e conversioni (F#)

Viene descritto il supporto per la conversione dei tipi in F#.

Controllo di accesso (F#)

Viene descritto il controllo di accesso in F#.Il controllo di accesso comporta la dichiarazione dei client che possono utilizzare determinati elementi di programma, ad esempio tipi, metodi, funzioni e così via.

Criteri di ricerca [F#]

Vengono descritti i modelli, che rappresentano regole per la trasformazione dei dati di input utilizzate nel linguaggio F# per estrarre e confrontare i dati con un modello, scomporre i dati in parti costituenti o estrarre informazioni dai dati in diversi modi.

Modelli attivi (F#)

Vengono descritti i modelli attivi.I modelli attivi consentono di definire partizioni denominate che permettono di suddividere i dati di input.È possibile utilizzare i modelli attivi per scomporre i dati in modo personalizzato per ogni partizione.

Asserzioni (F#)

Viene descritta l'espressione assert, che rappresenta una funzionalità di debug che è possibile utilizzare per testare un'espressione.In caso di errore nella modalità di debug, un'asserzione genera una finestra di dialogo di errore di sistema.

Gestione delle eccezioni (F#)

Sono incluse informazioni sul supporto della gestione delle eccezioni nel linguaggio F#.

Attributi (F#)

Vengono descritti gli attributi, che consentono l'applicazione dei metadati a un costrutto di programmazione.

Gestione di risorse: parola chiave use (F#)

Vengono descritte le parole chiave use e using, che consentono di controllare l'inizializzazione e il rilascio delle risorse.

Spazi dei nomi (F#)

Viene descritto il supporto dello spazio dei nomi in F#.Uno spazio dei nomi consente di organizzare il codice in aree di funzionalità correlate, permettendo di associare un nome a un raggruppamento di elementi di programma.

Moduli (F#)

Vengono descritti i moduli.Un modulo F# è un raggruppamento di elementi di codice F#, ad esempio valori, tipi e valori delle funzioni, in un programma F#.Il raggruppamento degli elementi di codice nei moduli consente di mantenere uniti gli elementi di codice correlati evitando conflitti di nomi nel programma.

Dichiarazioni di importazione: parola chiave open (F#)

Viene descritto il funzionamento di open.Una dichiarazione di importazione specifica un modulo o uno spazio dei nomi ai cui elementi è possibile fare riferimento senza utilizzare un nome completo.

Firme (F#)

Vengono descritti le firme e i file delle firme.Un file della firma contiene informazioni sulle firme pubbliche di un set di elementi di programma F#, ad esempio tipi, spazi dei nomi e moduli.Tale file può essere utilizzato per specificare l'accessibilità di questi elementi di programma.

Documentazione XML (F#)

Viene descritto il supporto per la generazione di file di documentazione per commenti dei documenti XML, detti anche commenti con tripla barra.In F# è possibile produrre documentazione dai commenti del codice nello stesso modo in cui avviene negli altri linguaggi .NET.

Sintassi dettagliata (F#)

Viene descritta la sintassi per i costrutti F# quando la sintassi leggera non è abilitata.La sintassi dettagliata è indicata dalla direttiva #light "off" all'inizio del file di codice.

Tipi F#

Nella tabella seguente sono indicati gli argomenti di riferimento disponibili in cui sono descritti i tipi supportati dal linguaggio F#.

Titolo

Descrizione

Valori (F#)

Vengono descritti i valori, ovvero quantità non modificabili di un tipo specifico. I valori possono essere numeri a virgola mobile o integrali, caratteri o testo, elenchi, sequenze, matrici, tuple, unioni discriminate, record, tipi di classi o valori di funzioni.

Tipi primitivi (F#)

Vengono descritti i tipi primitivi fondamentali utilizzati nel linguaggio F#.Vengono inoltre indicati i tipi .NET corrispondenti e i valori minimo e massimo per ogni tipo.

Tipo di unità (F#)

Viene descritto il tipo unit, che indica l'assenza di un valore specifico. Il tipo unit dispone solo di un singolo valore, utilizzato come segnaposto quando non è presente o non è necessario nessun altro valore.

Stringhe (F#)

Vengono descritte le stringhe in F#.Il tipo string rappresenta testo non modificabile, sotto forma di una sequenza di caratteri Unicode.Il tipo string è un alias dell'elemento String in .NET Framework.

Tuple (F#)

Vengono descritte le tuple, ovvero raggruppamenti di valori senza nome ma ordinati di tipi potenzialmente diversi.

Tipi di raccolta F#

Panoramica dei F# funzionale tipi di insieme, inclusi i tipi di matrici, elenchi, le sequenze (seq), mappe e set.

Elenchi (F#)

Vengono descritti gli elenchi.Un elenco in F# è una serie ordinata e non modificabile di elementi tutti dello stesso tipo.

Opzioni (F#)

Viene descritto il tipo opzione.Un'opzione in F# viene utilizzata quando un valore potrebbe o meno essere presente.Un'opzione dispone di un tipo sottostante e può contenere un valore di quel tipo o non disporre di alcun valore.

Sequenze (F#)

Vengono descritte le sequenze.Una sequenza è una serie logica di elementi tutti di un tipo.I singoli elementi delle sequenze vengono calcolati solo se necessario, pertanto la rappresentazione potrebbe essere più piccola di quanto indicato dal conteggio degli elementi letterali.

Matrici (F#)

Vengono descritte le matrici.Le matrici sono sequenze a dimensione fissa, in base zero e modificabili di elementi dati consecutivi, tutti dello stesso tipo.

Record (F#)

Vengono descritti i record.I record rappresentano aggregazioni semplici di valori denominati, facoltativamente con membri.

Unioni discriminate (F#)

Vengono descritte le unioni discriminate, che offrono supporto per valori che possono essere uno tra diversi casi denominati, ognuno con valori e tipi potenzialmente diversi.

Enumerazioni (F#)

Vengono descritte le enumerazioni, ovvero tipi con un set definito di valori denominati.È possibile utilizzare le enumerazioni al posto dei valori letterali per semplificare la lettura e la gestione del codice.

Celle di riferimento (F#)

Vengono descritte le celle di riferimento, ovvero posizioni di archiviazione che consentono di creare variabili modificabili con semantica di riferimento.

Abbreviazioni dei tipi (F#)

Vengono descritte le abbreviazioni dei tipi, ovvero nomi alternativi per i tipi.

Classi (F#)

Vengono descritte le classi, ovvero tipi che rappresentano oggetti che possono disporre di proprietà, metodi ed eventi.

Strutture (F#)

Vengono descritte le strutture, ovvero tipi di oggetti compatti che possono risultare più efficaci rispetto alle classi per i tipi che dispongono di una piccola quantità di dati e presentano un comportamento semplice.

Interfacce (F#)

Vengono descritte le interfacce, che specificano set di membri correlati implementati da altre classi.

Classi astratte (F#)

Vengono descritte le classi astratte, ovvero classi in cui tutti i membri, o alcuni di essi, non sono implementati, in modo che le implementazioni possano essere fornite dalle classi derivate.

Estensioni di tipo (F#)

Vengono descritte le estensioni dei tipi, che consentono di aggiungere nuovi membri a un tipo di oggetto definito in precedenza.

Tipi flessibili (F#)

Vengono descritti i tipi flessibili.Un'annotazione di tipo flessibile indica che un parametro, una variabile o un valore è di un tipo compatibile con il tipo specificato, dove la compatibilità è determinata dalla posizione in una gerarchia orientata a oggetti di classi o interfacce.

Delegati (F#)

Vengono descritti i delegati, che rappresentano una chiamata di funzione come un oggetto.

Unità di misura (F#)

Vengono descritte le unità di misura.Ai valori a virgola mobile in F# possono essere associate unità di misura, utilizzate in genere per indicare lunghezza, volume, massa e così via.

Provider di tipi

Descrizione tipo fornisce e vengono forniti collegamenti a procedure dettagliate sull'utilizzo di provider di tipo incorporato per accedere ai database e i servizi web.

Espressioni F#

Nella tabella seguente sono elencati gli argomenti in cui vengono descritte le espressioni F#.

Titolo

Descrizione

Espressioni condizionali: if...then...else (F#)

Viene descritta l'espressione if...then...else, che consente di eseguire diversi rami di codice e che restituisce un valore diverso in base all'espressione booleana specificata.

Espressioni match (F#)

Viene descritta l'espressione match, che offre il controllo sulla creazione di rami basato sul confronto di un'espressione con un set di modelli.

Cicli: espressione for...to (F#)

Viene descritta l'espressione for...to, utilizzata per scorrere in ciclo un intervallo di valori di una variabile di ciclo.

Cicli: espressioni for...in (F#)

Viene descritta l'espressione for...in, un costrutto di ciclo utilizzato per scorrere le corrispondenze di un modello 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: espressioni while...do (F#)

Viene descritta l'espressione while...do, utilizzata per l'esecuzione iterativa (ciclo) quando una condizione di test specificata è vera.

Espressioni di oggetto (F#)

Vengono descritte le espressioni di oggetto, ovvero espressioni che consentono di creare nuove istanze di un tipo di oggetto anonimo creato dinamicamente basato su un'interfaccia, un set di interfacce o un tipo di base esistente.

Calcoli differiti (F#)

Vengono descritti i calcoli differiti, ovvero calcoli che non vengono valutati immediatamente, ma solo quando il risultato è effettivamente necessario.

Espressioni di calcolo (F#)

Descrive le espressioni di calcolo in F#, che forniscono un'utile sintassi per la scrittura di calcoli che possono essere ordinati in sequenza e combinati utilizzando costrutti e associazioni del flusso di controllo.Possono essere utilizzati per fornire un'utile sintassi per i monad, una funzionalità di programmazione funzionale che può essere utilizzata per gestire dati, controllo ed effetti collaterali nei programmi funzionali.Un tipo di espressione di calcolo, ovvero il flusso di lavoro asincrono, fornisce supporto per i calcoli asincroni e paralleli.Per ulteriori informazioni, vedere Flussi di lavoro asincroni (F#).

Flussi di lavoro asincroni (F#)

Descrive flussi di lavoro asincroni, una funzionalità relativa al linguaggio che consente di scrivere codice asincrono in una modalità più o meno analoga a quella della scrittura di codice sincrono.

Citazioni di codice (F#)

Vengono descritte le citazioni di codice, una funzionalità del linguaggio che consente di generare e utilizzare espressioni di codice F# a livello di programmazione.

Espressioni di query (F#)

Vengono descritte le espressioni di query, una funzionalità del linguaggio che implementa LINQ per F# e consente di creare query su un'origine dati o un insieme enumerabile.

Costrutti supportati dal compilatore

Nella tabella seguente sono elencati gli argomenti in cui vengono descritti i costrutti speciali supportati dal compilatore.

Argomento

Descrizione

Direttive per il compilatore (F#)

Vengono descritte le direttive del processore e del compilatore.

Identificatori di riga, file e percorso di origine (F#)

Vengono descritti gli identificatori __LINE__, __SOURCE_DIRECTORY__ e __SOURCE_FILE__, che rappresentano valori incorporati che consentono di accedere a directory, nome file e numero di riga di origine nel codice.

Vedere anche

Altre risorse

Visual F#

Riferimenti per il compilatore F# (fsc.exe)