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 13.9.201.0 for F# 9.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
#help "idn";; // Display documentation for an identifier, e.g. #help "List.map";;
#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
#clear;; // Clear screen
#quit;; // Exit
F# Interactive command line options:
See 'dotnet fsi --help' for options
Les ;; caractères délimitent la fin d’une expression. Aucun code n'est évalué tant que vous n'avez pas entré les caractères ;;. Cette structure est utile lors de l’écriture d’expressions multilignes, car votre code n’est pas délimité par de nouveaux caractères de ligne.
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é alors que la deuxième ligne affiche les informations de type de la sortie. Dans ce cas, la valeur (val) sortie vers la console est de type unit, qui est représentée par le () jeton et liée au it nom. 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 F#
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!