Options interactives de F#
Cet article décrit les options de ligne de commande prises en charge par F# Interactive, fsi.exe
. F# Interactive accepte la plupart des mêmes options de ligne de commande que le compilateur F#, mais accepte également certaines options supplémentaires.
Utiliser F# Interactive pour l’écriture de scripts
F# Interactive, dotnet fsi
, peut être lancé de manière interactive, ou il peut être lancé à partir de la ligne de commande pour exécuter un script. La syntaxe de ligne de commande est
dotnet fsi [options] [ script-file [arguments] ]
L’extension de fichier pour les fichiers de script F# est .fsx
.
Tableau des options interactives F#
Le tableau suivant récapitule les options prises en charge par F# Interactive. Vous pouvez définir ces options sur la ligne de commande ou via l’IDE Visual Studio. Pour définir ces options dans l’IDE Visual Studio, ouvrez le menu Outils, sélectionnez Options, développez le nœud F# Tools, puis sélectionnez F# Interactive.
Lorsque les listes apparaissent dans les arguments d’option interactive F#, les éléments de liste sont séparés par des points-virgules (;
).
Option | Description |
---|---|
-- | Utilisé pour indiquer à F# Interactive de traiter les arguments restants comme des arguments de ligne de commande au programme ou au script F#, que vous pouvez accéder dans le code à l’aide de la liste fsi. CommandLineArgs. |
--checked[+|-] | Identique à l’option du compilateur fsc.exe. Pour plus d’informations, consultez l’article Options du compilateur. |
--checknulls[+|-] | Identique à l’option du compilateur fsc.exe. Pour plus d’informations, consultez les options du compilateur . |
--codepage:<int> | Identique à l’option du compilateur fsc.exe. Pour plus d’informations, consultez Options du compilateur. |
--consolecolors[+|-] | Affiche des messages d’avertissement et d’erreur en couleur. |
**--compilertool:<extensionsfolder> | Référencer un assemblage ou un répertoire contenant un outil de conception (forme courte : -t). |
--crossoptimize[+|-] | Activez ou désactivez les optimisations entre modules. |
--debug[+|-] --debug:[full|pdbonly|portable|embedded] -g[+|-] -g:[full|pdbonly|portable|embedded] |
Identique à l’option du compilateur fsc.exe. Pour plus d’informations, consultez Options du Compilateur. |
--define:<string> | Identique à l’option du compilateur fsc.exe. Pour plus d’informations, consultez l’article Options du compilateur. |
--deterministic[+|-] | Génère un assembly déterministe (y compris le GUID de version du module et l’horodatage). |
--exec | Indique à F# interactive de quitter après le chargement des fichiers ou l’exécution du fichier de script donné sur la ligne de commande. |
--fullpaths | Identique à l’option du compilateur fsc.exe. Pour plus d'informations, consultez Options du compilateur. |
--gui[+|-] | Active ou désactive la boucle d’événements Windows Forms. La valeur par défaut est activée. |
--help -? |
Permet d’afficher la syntaxe de ligne de commande et une brève description de chaque option. |
--lib :<liste-de-dossiers> -I :<liste de dossiers> |
Identique à l’option du compilateur fsc.exe. Pour plus d’informations, consultez Options du Compilateur. |
--load :<nom de fichier> | Compile le code source donné au démarrage et charge les constructions F# compilées dans la session. |
--mlcompatibility | Identique à l’option du compilateur fsc.exe. Pour plus d'informations, consultez les Options du compilateur . |
--noframework | Identique à l’option du compilateur fsc.exe. Pour plus d’informations, consultez Options du Compilateur |
--nologo | Identique à l’option du compilateur fsc.exe. Pour plus d’informations, consultez les Options du compilateur . |
--nowarn:<warning-list> | Identique à l’option du compilateur fsc.exe. Pour plus d’informations, consultez l’article Options du compilateur. |
--optimize[+|-] | Identique à l’option du compilateur fsc.exe. Pour plus d’informations, consultez Options du compilateur. |
--preferreduilang:<lang> | Spécifie le nom de la culture de la langue de sortie par défaut (par exemple, es-ES, ja-JP). |
--silence | Supprime la sortie de F# Interactive vers le flux stdout. |
--quotations-debug | Spécifie que des informations de débogage supplémentaires doivent être émises pour les expressions qui sont dérivées des littérales de citation F# et des définitions réfléchies. Les informations de débogage sont ajoutées aux attributs personnalisés d’un nœud d’arborescence d’expressions F#. Voir Code Quotations et Expr.CustomAttributes. |
--readline[+|-] | Active ou désactive la complétion de tabulation en mode interactif. |
--reference :<nom de fichier> -r :<nom de fichier> |
Identique à l’option du compilateur fsc.exe. Pour plus d’informations, consultez les options du compilateur . |
--tailcalls[+|-] | Active ou désactive l'utilisation de l'instruction tail IL, qui entraîne la réutilisation de la trame de pile pour les fonctions récursives de queue. Cette option est activée par défaut. |
--targetprofile:<string> | Spécifie le profil du framework cible de cet assemblage. Les valeurs valides sont mscorlib , netcore ou netstandard . La valeur par défaut est mscorlib . |
--use:<filename> | Indique à l’interpréteur d’utiliser le fichier donné au démarrage comme entrée initiale. |
--utf8output | Identique à l’option du compilateur fsc.exe. Pour plus d’informations, consultez Options du Compilateur. |
--warn:<warning-level> | Identique à l’option du compilateur fsc.exe. Pour plus d’informations, consultez Options du compilateur. |
--warnaserror[+|-] | Identique à l’option du compilateur fsc.exe. Pour plus d’informations, consultez les options du compilateur . |
--warnaserror[+|-]:<int-list> | Identique à l’option du compilateur fsc.exe. Pour plus d'informations, consultez Options du compilateur. |
Impression structurée F# Interactive
F# Interactive (dotnet fsi
) utilise une version étendue de mise en forme de texte brut structuré pour signaler des valeurs.
Toutes les fonctionnalités de
%A
mise en forme de texte brut sont prises en charge et certaines sont également personnalisables.L’impression est colorisée si les couleurs sont prises en charge par la console de sortie.
Une limite est placée sur la longueur des chaînes affichées, sauf si vous évaluez explicitement cette chaîne.
Un ensemble de paramètres définissables par l’utilisateur est disponible via l’objet
fsi
.
Les paramètres disponibles pour personnaliser l’impression de texte brut pour les valeurs signalées sont les suivants :
open System.Globalization
fsi.FormatProvider <- CultureInfo("de-DE") // control the default culture for primitives
fsi.PrintWidth <- 120 // Control the width used for structured printing
fsi.PrintDepth <- 10 // Control the maximum depth of nested printing
fsi.PrintLength <- 10 // Control the length of lists and arrays
fsi.PrintSize <- 100 // Control the maximum overall object count
fsi.ShowProperties <- false // Control whether properties of .NET objects are shown by default
fsi.ShowIEnumerable <- false // Control whether sequence values are expanded by default
fsi.ShowDeclarationValues <- false // Control whether values are shown for declaration outputs
Personnaliser avec AddPrinter
et AddPrintTransformer
L'impression en F# Les sorties interactives peuvent être personnalisées en utilisant fsi.AddPrinter
et fsi.AddPrintTransformer
.
La première fonction donne du texte pour remplacer l’impression d’un objet. La deuxième fonction retourne un objet de substitution à afficher à la place. Par exemple, considérez le code F# suivant :
open System
fsi.AddPrinter<DateTime>(fun dt -> dt.ToString("s"))
type DateAndLabel =
{ Date: DateTime
Label: string }
let newYearsDay1999 =
{ Date = DateTime(1999, 1, 1)
Label = "New Year" }
Si vous exécutez l’exemple dans F# Interactive, il est généré en fonction de l’option de mise en forme définie. Dans ce cas, elle affecte la mise en forme de la date et de l’heure :
type DateAndLabel =
{ Date: DateTime
Label: string }
val newYearsDay1999 : DateAndLabel = { Date = 1999-01-01T00:00:00
Label = "New Year" }
fsi.AddPrintTransformer
peut être utilisé pour donner un objet de substitution pour l'impression :
type MyList(values: int list) =
member _.Values = values
fsi.AddPrintTransformer(fun (x:MyList) -> box x.Values)
let x = MyList([1..10])
Cette sortie est la suivante :
val x : MyList = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]
Si la fonction transformateur passée à fsi.AddPrintTransformer
retourne null
, le transformateur d’impression est ignoré.
Cela peut être utilisé pour filtrer n’importe quelle valeur d’entrée en commençant par le type obj
. Par exemple:
fsi.AddPrintTransformer(fun (x:obj) ->
match x with
| :? string as s when s = "beep" -> box ["quack"; "quack"; "quack"]
| _ -> null)
let y = "beep"
Cette sortie est la suivante :
val y : string = ["quack"; "quack"; "quack"]
Rubriques connexes
Titre | Description |
---|---|
options du compilateur | Décrit les options de ligne de commande disponibles pour le compilateur F#, fsc.exe. |