Qu'est-ce que F# Interactive ?
Vous pouvez parfois être amené à contourner le processus de création, d'empaquetage et de distribution d'une application. F# Interactive est un environnement de programmation et d’écriture de scripts interactif. Cela facilite le passage de l’idée au code en vous permettant d’écrire et d’évaluer celui-ci en temps réel via la console ou par le biais de fichiers de script autonomes.
Lancer F# Interactive
F# Interactive est intégré au kit SDK .NET. Vous pouvez le démarrer avec la commande dotnet fsi
de l’interface CLI .NET.
dotnet fsi
Session REPL (read–eval–print loop)
Le lancement de F# Interactive ouvre une session REPL (read–eval–print loop) qui vous permet d'écrire votre code F# et d'évaluer instantanément sa sortie sur la console.
Microsoft (R) F# Interactive version 11.4.2.0 for F# 5.0
Copyright (c) Microsoft Corporation. All Rights Reserved.
For help type #help;;
>
Exécuter et évaluer des expressions
Pour pouvoir évaluer votre entrée, vous devez la saisir après le caractère >
.
> #help;;
Par exemple, si vous exécutez la commande #help
, la sortie affiche le menu Aide F# Interactive.
F# Interactive directives:
#r "file.dll";; // Reference (dynamically load) the given DLL
#i "package source uri";; // Include package source uri when searching for packages
#I "path";; // Add the given search path for referenced DLLs
#load "file.fs" ...;; // Load the given file(s) as if compiled and referenced
#time ["on"|"off"];; // Toggle timing on/off
#help;; // Display help
#r "nuget:FSharp.Data, 3.1.2";; // Load Nuget Package 'FSharp.Data' version '3.1.2'
#r "nuget:FSharp.Data";; // Load Nuget Package 'FSharp.Data' with the highest version
#quit;; // Exit
F# Interactive command line options:
See 'dotnet fsi --help' for options
La fin d’une expression est limitée par les caractères ;;
. Aucun code n'est évalué tant que vous n'avez pas entré les caractères ;;
. Cette structure est particulièrement utile lors de l’écriture d’expressions de plusieurs lignes dans la mesure où aucun caractère de nouvelle ligne ne délimite votre code.
L'évaluation du code F# repose sur le même principe. Le code suivant affiche un message sur la console.
> printfn "Hello World!";;
La sortie évaluée est la suivante :
Hello World!
val it : unit = ()
La première ligne affiche la sortie du code évalué tandis que la deuxième affiche les informations relatives au type de la sortie. Dans cet exemple, la valeur affichée sur la console est de type unit
, représentée par le jeton ()
et liée au nom it
. Vous pourrez accéder à la valeur it
plus loin dans votre programme si vous souhaitez effectuer d'autres opérations.
Quitter la session REPL
Après l’utilisation de REPL de F# Interactive, utilisez les commandes #q
ou #quit
pour quitter.
> #q;;
Fichiers de script fsx
Au fil de l'écriture de votre code, vous pouvez enregistrer celui-ci dans un fichier de script .fsx.
Si vous utilisez le même exemple d’affichage d’un message sur la console, vous pouvez créer un fichier nommé my-script.fsx pour y écrire votre code.
printfn "Hello World!"
Notez toutefois que dans les fichiers fsx, vous n’avez pas besoin d’entrer les caractères ;;
à la fin de vos expressions. Cela n’est pas nécessaire dans les fichiers de script, car F# Interactive peut utiliser les instructions standard de formatage de code comme la mise en retrait et les nouvelles lignes.
Au lieu de compiler le code source puis d'exécuter ultérieurement l'assembly compilé, vous pouvez simplement exécuter dotnet fsi
et spécifier le nom du fichier de script contenant votre code F#. F# interactive lit alors le code et l'exécute en temps réel.
dotnet fsi my-script.fsx
L'exécution de ce script génère la sortie suivante.
Hello World!