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 |
---|---|
Sono inclusi collegamenti a informazioni su tutte le parole chiave del linguaggio F#. |
|
È inclusa una tabella di simboli e operatori utilizzati nel linguaggio 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 |
---|---|
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. |
|
Vengono descritti i tipi utilizzati in F# e le modalità di assegnazione del nome e descrizione per tali tipi. |
|
Viene descritto in che modo avviene l'inferenza dei tipi di valori, variabili, parametri e valori restituiti da parte del compilatore F#. |
|
Vengono descritti i costrutti generici in F#. |
|
Viene descritta l'ereditarietà, utilizzata per modellare la relazione di tipo "è", o definizione di sottotipo, nella programmazione orientata a oggetti. |
|
Vengono descritti i membri dei tipi di oggetti 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. |
|
Viene descritto come eseguire l'overload di operatori aritmetici in un tipo di record o classe e a livello globale. |
|
Viene descritto il supporto per la conversione dei tipi in 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. |
|
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. |
|
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. |
|
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. |
|
Sono incluse informazioni sul supporto della gestione delle eccezioni nel linguaggio F#. |
|
Vengono descritti gli attributi, che consentono l'applicazione dei metadati a un costrutto di programmazione. |
|
Vengono descritte le parole chiave use e using, che consentono di controllare l'inizializzazione e il rilascio delle risorse. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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 |
---|---|
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. |
|
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. |
|
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. |
|
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. |
|
Vengono descritte le tuple, ovvero raggruppamenti di valori senza nome ma ordinati di tipi potenzialmente diversi. |
|
Panoramica dei F# funzionale tipi di insieme, inclusi i tipi di matrici, elenchi, le sequenze (seq), mappe e set. |
|
Vengono descritti gli elenchi.Un elenco in F# è una serie ordinata e non modificabile di elementi tutti dello stesso tipo. |
|
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. |
|
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. |
|
Vengono descritte le matrici.Le matrici sono sequenze a dimensione fissa, in base zero e modificabili di elementi dati consecutivi, tutti dello stesso tipo. |
|
Vengono descritti i record.I record rappresentano aggregazioni semplici di valori denominati, facoltativamente con membri. |
|
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. |
|
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. |
|
Vengono descritte le celle di riferimento, ovvero posizioni di archiviazione che consentono di creare variabili modificabili con semantica di riferimento. |
|
Vengono descritte le abbreviazioni dei tipi, ovvero nomi alternativi per i tipi. |
|
Vengono descritte le classi, ovvero tipi che rappresentano oggetti che possono disporre di proprietà, metodi ed eventi. |
|
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. |
|
Vengono descritte le interfacce, che specificano set di membri correlati implementati da altre classi. |
|
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. |
|
Vengono descritte le estensioni dei tipi, che consentono di aggiungere nuovi membri a un tipo di oggetto definito in precedenza. |
|
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. |
|
Vengono descritti i delegati, che rappresentano una chiamata di funzione come un oggetto. |
|
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. |
|
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 |
---|---|
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. |
|
Viene descritta l'espressione match, che offre il controllo sulla creazione di rami basato sul confronto di un'espressione con un set di modelli. |
|
Viene descritta l'espressione for...to, utilizzata per scorrere in ciclo un intervallo di valori di una variabile di ciclo. |
|
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. |
|
Viene descritta l'espressione while...do, utilizzata per l'esecuzione iterativa (ciclo) quando una condizione di test specificata è vera. |
|
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. |
|
Vengono descritti i calcoli differiti, ovvero calcoli che non vengono valutati immediatamente, ma solo quando il risultato è effettivamente necessario. |
|
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#). |
|
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. |
|
Vengono descritte le citazioni di codice, una funzionalità del linguaggio che consente di generare e utilizzare espressioni di codice F# a livello di programmazione. |
|
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 |
---|---|
Vengono descritte le direttive del processore e del compilatore. |
|
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. |