Partager via


Référence de F# Interactive (fsi.exe)

F# Interactive (fsi.exe) permet d'exécuter du code F# interactivement dans la console ou d'exécuter des scripts F#.En d'autres termes, F# Interactive exécute une boucle REPL (Read, Evaluate, Print Loop) pour le langage F#.

Programmation interactive avec F#

F# Interactive peut être utilisé pour écrire du code dans la console ou dans une fenêtre dans Visual Studio.

Pour exécuter F# Interactive à partir de la console, exécutez fsi.exe.Pour plus d'informations sur les options de ligne de commande disponibles, consultez Options F# Interactive.

Pour exécuter F# Interactive par l'intermédiaire de Visual Studio 2010, vous pouvez cliquer sur le bouton de barre d'outils approprié intitulé F# Interactive ou utiliser les touches Ctrl+Alt+F.À la suite de cela s'ouvre la fenêtre interactive, une fenêtre Outil qui exécute une session F# Interactive.Vous pouvez aussi sélectionner le code à exécuter dans la fenêtre interactive et appuyer sur la combinaison de touches Alt+Entrée.F# Interactive démarre dans une fenêtre Outil nommée F# Interactive.Lorsque vous utilisez cette combinaison de touches, assurez -vous que la fenêtre d'éditeur a le focus.

Que vous utilisiez la console ou Visua Studio 2010, une invite de commandes apparaît et l'interpréteur attend votre entrée.Vous pouvez entrer du code comme dans un fichier de code.Pour compiler et exécuter le code, entrez deux points-virgules (;;) pour terminer une ligne ou plusieurs lignes d'entrée.

F# Interactive tente de compiler le code et, en cas de réussite, l'exécute et imprime la signature des types et des valeurs qu'il a compilés.Si des erreurs se produisent, l'interpréteur imprime les messages d'erreur.

Le code entré dans la même session ayant accès à toutes les constructions entrées précédemment, vous pouvez développer des programmes.Une mémoire tampon étendue dans la fenêtre Outil vous permet de copier le code dans un fichier si nécessaire.

En cas d'exécution dans Visual Studio, F# Interactive s'exécute indépendamment de votre projet. Ainsi, par exemple, pour utiliser les constructions définies dans votre projet dans F# Interactive, vous devez copier le code de la fonction dans la fenêtre interactive.

Vous pouvez contrôler les arguments de ligne de commande F# Interactive (options) en réglant les paramètres.Dans le menu Outils, sélectionnez Options..., puis développez Outils F#.Les deux paramètres que vous pouvez modifier sont les options F# interactive et le F# interactive 64 bits définissant, qui est pertinent uniquement si vous exécutez F# interactive sur un ordinateur 64 bits.Ce paramètre détermine si vous souhaitez exécuter la version 64 bits de fonctionnalité fsi.exe ou de fsianycpu.exe, qui utilisent l'architecture de l'ordinateur pour déterminer si s'exécute en tant que processus 32 bits ou 64 bits.

Scripts avec F#

Les scripts utilisent l'extension de fichier .fsx ou .fsscript.Au lieu de compiler le code source et d'exécuter ultérieurement l'assembly compilé, vous pouvez simplement exécuter fsi.exe et spécifier le nom de fichier du script du code source F#. F# Interactive lit alors le code et l'exécute en temps réel.

Différences entre les environnements interactif, de script et compilé

Lorsque vous compilez du code dans F# Interactive, qu'il s'agisse d'une exécution interactive ou de script, le symbole INTERACTIVE est défini.Lorsque vous compilez du code dans le compilateur, le symbole COMPILED est défini.Ainsi, si le code doit être différent dans les modes compilé et interactif, vous pouvez utiliser des directives de préprocesseur pour une compilation conditionnelle afin de déterminer celui à utiliser.

Certaines directives sont disponibles lorsque vous exécutez des scripts dans F# Interactive, alors qu'elles ne le sont pas lorsque vous exécutez le compilateur.Le tableau suivant résume les directives qui sont disponibles lorsque vous utilisez F# Interactive.

Directive

Description

#help

Affiche des informations sur les directives disponibles.

#I

Spécifie un chemin de recherche des assemblys entre guillemets.

#load

Lit un fichier source, le compile et l'exécute.

#quit

Met fin à une session F# Interactive.

#r

Référence un assembly.

#time ["on"|"off"]

De lui-même, #time bascule les informations sur les performances.Lorsqu'elles sont activées, F# Interactive mesure le temps réel F#, le temps CPU et les informations de garbage collection pour chaque section de code qui est interprété et exécuté.

Lorsque vous spécifiez des fichiers ou des chemins d'accès dans F# Interactive, un littéral de chaîne est attendu.Par conséquent, les fichiers et les chemins d'accès doivent être entre guillemets et les caractères d'échappement habituels s'appliquent.En outre, vous pouvez utiliser le caractère @ pour que F# Interactive interprète une chaîne qui contient un chemin d'accès sous la forme d'une chaîne textuelle.Ainsi, F# Interactive ignore les caractères d'échappement.

L'une des différences entre le mode compilé et le mode interactif est la façon dont vous accédez aux arguments de ligne de commande.En mode compilé, utilisez GetCommandLineArgs.Dans les scripts, utilisez fsi.CommandLineArgs.

Le code suivant illustre comment créer une fonction qui lit les arguments de ligne de commande dans un script, et comment référencer un autre assembly à partir d'un script.Le premier fichier de code, MyAssembly.fs, est le code pour l'assembly qui est référencé.Compilez ce fichier avec la ligne de commande fsc -a MyAssembly.fs. Ensuite, exécutez le deuxième fichier en tant que script avec la ligne de commande 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)

La sortie est la suivante :

file1.fsx
test
60

Rubriques connexes

Titre

Description

Options F# Interactive

Décrit la syntaxe et les options de ligne de commande pour F# Interactive, fsi.exe.

Référence de la bibliothèque F# Interactive

Décrit les fonctionnalités de bibliothèque disponibles lors de l'exécution de code dans F# Interactive.