Riferimenti per F# Interactive (fsi.exe)
F# Interactive (fsi.exe) viene utilizzato per eseguire codice F# in modo interattivo nella console o script F#. In altre parole, F# Interactive esegue un REPL (Read, Evaluate, Print Loop) per il linguaggio F#.
Programmazione interattiva con F#
F# Interactive può essere utilizzato per scrivere codice nella console o in una finestra in Visual Studio.
Per eseguire F# Interactive dalla console, eseguire fsi.exe. Per informazioni sulle opzioni della riga di comando disponibili, vedere Opzioni di F# Interactive.
Per eseguire F# Interactive tramite Visual Studio 2010, è possibile fare clic sul pulsante F# Interactive appropriato della barra degli strumenti oppure premere i tasti CTRL+ALT+F. In questo modo verrà aperta la finestra interattiva, una finestra degli strumenti che esegue una sessione interattiva di F#. È inoltre possibile selezionare il codice che si desidera eseguire nella finestra interattiva e quindi premere la combinazione di tasti ALT+INVIO. La modalità F# Interactive viene avviata nella finestra degli strumenti F# Interactive.
Sia che si utilizzi la console o Visual Studio 2010, viene visualizzato un prompt dei comandi e l'interprete attende l'input. È possibile immettere codice nello stesso modo in cui lo si immette in un file di codice. Per compilare ed eseguire il codice, immettere due punti e virgola (;;) per terminare una o più righe di input.
Tramite la modalità F# Interactive viene eseguito un tentativo di compilare il codice e, in caso di esito positivo, il codice viene eseguito e viene stampata la firma dei tipi e dei valori compilati. Se si verificano errori, l'interprete stampa i messaggi di errore.
Il codice immesso nella stessa sessione dispone di accesso a qualsiasi costrutto immesso in precedenza, pertanto è possibile eseguire la compilazione basata sui programmi. Un buffer completo nella finestra degli strumenti consente di copiare il codice in un file, se necessario.
Se eseguito in Visual Studio, F# Interactive viene eseguito in modo indipendente dal progetto, pertanto non è ad esempio possibile utilizzare in F# Interactive costrutti definiti nel progetto, a meno che non si copi il codice per la funzione nella finestra interattiva.
È possibile controllare gli argomenti della riga di comando di F# Interactive (opzioni) modificando le impostazioni. Scegliere Opzioni dal menu Strumenti e quindi espandere Strumenti F#. Le due impostazioni che è possibile modificare sono le opzioni di F# Interactive e il percorso del file eseguibile fsi.exe, che è possibile utilizzare se si dispone di una versione di fsi.exe di una versione diversa di F# che si desidera eseguire.
Scripting con F#
Gli script utilizzano l'estensione di file .fsx o .fsscript. Anziché compilare il codice sorgente e quindi eseguire in un secondo momento l'assembly compilato, è possibile eseguire fsi.exe e specificare il nome di file dello script di codice sorgente F#, in modo che il codice venga letto ed eseguito in tempo reale da F# Interactive.
Differenze tra ambienti interattivi, di scripting e compilati
Quando si compila il codice in F# Interactive, tramite l'esecuzione interattiva o l'esecuzione di uno script, viene definito il simbolo INTERACTIVE. Quando si compila il codice nel compilatore, viene definito il simbolo COMPILED. Se pertanto è necessario che il codice sia diverso nella modalità compilata e in quella interattiva, è possibile utilizzare le direttive per il preprocessore in modo da consentire alla compilazione condizionale di determinare quale utilizzare.
Alcune direttive sono disponibili se si eseguono script in F# Interactive, mentre non sono disponibili se si esegue il compilatore, Nella tabella seguente sono riepilogate le direttive disponibili quando si utilizza F# Interactive.
Direttiva |
Descrizione |
---|---|
#help |
Visualizza le informazioni sulle direttive disponibili. |
#I |
Specifica un percorso di ricerca di un assembly tra virgolette. |
#load |
Legge un file di origine, lo compila e lo esegue. |
#quit |
Termina una sessione di F# Interactive. |
#r |
Fa riferimento a un assembly. |
#time ["on"|"off"] |
Utilizzata da sola, #time consente di attivare o disattivare la visualizzazione delle informazioni sulle prestazioni. Quando viene abilitata, F# Interactive misura il tempo reale, il tempo di CPU e le informazioni di Garbage Collection per ogni sezione di codice interpretata ed eseguita. |
Quando si specificano file o percorsi in F# Interactive, è previsto un valore letterale stringa. I file e i percorsi devono di conseguenza essere racchiusi tra virgolette e vengono applicati i caratteri di escape consueti. È inoltre possibile utilizzare il carattere @ per fare in modo che in F# Interactive una stringa contenente un percorso venga interpretata come stringa verbatim. In questo modo, in F# Interactive vengono ignorati tutti i caratteri di escape.
Una delle differenze tra la modalità compilata e quella interattiva è la modalità di accesso agli argomenti della riga di comando. Nella modalità compilata, utilizzare GetCommandLineArgs. Negli script, utilizzare fsi.CommandLineArgs.
Nel codice seguente viene illustrato come creare una funzione che legge gli argomenti della riga di comando in uno script e viene inoltre illustrato come fare riferimento a un altro assembly da uno script. Il primo file di codice, MyAssembly.fs, è il codice per l'assembly a cui viene fatto riferimento. Compilare questo file con la riga di comando fsc -a MyAssembly.fs, quindi eseguire il secondo file come script con la riga di comando fsi --exec file1.fsx test
// MyAssembly.fs
module MyAssembly
let myFunction x y = x + 2 * y
// file1.fsx
#r "MyAssembly.dll"
printfn "Command line arguments: "
for arg in fsi.CommandLineArgs do
printfn "%s" arg
printfn "%A" (MyAssembly.myFunction 10 40)
L'output è indicato di seguito:
file1.fsx
test
60
Argomenti correlati
Titolo |
Descrizione |
---|---|
Descrive la sintassi e le opzioni della riga di comando supportate per F# Interactive, fsi.exe. |
|
Descrive la funzionalità della libreria disponibile in fase di esecuzione del codice in F# Interactive. |
Cronologia delle modifiche
Data |
Cronologia |
Motivo |
---|---|---|
Ottobre 2010 |
Aggiunta di una tabella delle direttive supportate. |
Miglioramento delle informazioni. |