Was ist F# Interactive?

Abgeschlossen

Manchmal möchten Sie nicht den gesamten Prozess zum Erstellen, Verpacken und Bereitstellen einer Anwendung durchlaufen. F# Interactive ist eine interaktive Umgebung für Programmierung und Skripterstellung. Sie vereinfacht die Umsetzung Ihrer Ideen in Code, da Sie Code in der Konsole oder in eigenständigen Skriptdateien in Echtzeit schreiben und auswerten können.

Starten von F# Interactive

F# Interactive ist in das .NET SDK integriert. Sie können die Umgebung mit dem .NET CLI-Befehl dotnet fsi starten.

dotnet fsi

Read-Evaluate-Print-Loop (REPL)

Beim Starten von F# Interactive gelangen Sie in eine REPL-Sitzung (Read-Evaluate-Print-Loop), in der Sie Ihren F#-Code schreiben und seine Ausgabe sofort in der Konsole auswerten können.

Microsoft (R) F# Interactive version 11.4.2.0 for F# 5.0 
Copyright (c) Microsoft Corporation. All Rights Reserved.

For help type #help;;

>

Ausführen und Auswerten von Ausdrücken

Damit Sie Ihre Eingabe auswerten können, müssen Sie sie nach dem >-Zeichen eingeben.

> #help;;

Wenn Sie beispielsweise den Befehl #help ausführen, zeigt die Ausgabe das Hilfemenü von F# Interactive an.

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

Ein Ausdruck wird mit den Zeichen ;; beendet. Es wird kein Code ausgewertet, bis Sie die ;;-Zeichen eingeben. Diese Struktur ist nützlich beim Schreiben von mehrzeiligen Ausdrücken, da Ihr Code nicht durch Zeilenvorschubzeichen beendet wird.

Das Auswerten von F#-Code funktioniert auf die gleiche Weise. Der folgende Code gibt eine Nachricht in der Konsole aus.

> printfn "Hello World!";;

Die ausgewertete Ausgabe lautet:

Hello World!
val it : unit = ()

In der ersten Zeile wird die Ausgabe des ausgewerteten Codes angezeigt, während in der zweiten Zeile die Typinformationen der Ausgabe angezeigt werden. In diesem Fall ist der Wert, der an die Konsole ausgegeben wird, vom Typ unit, der durch das Token () dargestellt wird und an den Namen it gebunden ist. Sie können auf den it-Wert später in Ihrem Programm zugreifen, wenn Sie weitere Vorgänge ausführen möchten.

Beenden der REPL

Wenn Sie mit F# Interactive REPL fertig sind, verwenden Sie den Befehl #q oder #quit, um die Shell zu beenden.

> #q;;

FSX-Skriptdateien

Wenn Sie mehr Code schreiben, können Sie Ihren Code in einem Skript mit der Dateierweiterung fsx speichern.

Wenn Sie das gleiche Beispiel zur Ausgabe einer Nachricht in der Konsole verwenden, können Sie eine Datei mit dem Namen my-script.fsx erstellen, in der Sie Ihren Code schreiben.

printfn "Hello World!"

Beachten Sie aber, dass in fsx-Dateien die Zeichen ;; am Ende von Ausdrücken nicht erforderlich sind. Das liegt daran, dass F# Interactive in Skriptdateien die F#-Standardrichtlinien zur Codeformatierung beispielsweise für Einzüge und Zeilenumbrüche verwenden kann.

Statt Quellcode zu kompilieren und später die kompilierte Assembly auszuführen, können Sie einfach dotnet fsi ausführen und den Dateinamen des Skripts mit dem F#-Quellcode angeben. F# Interactive liest dann den Code und führt ihn in Echtzeit aus.

dotnet fsi my-script.fsx

Beim Ausführen dieses Skripts wird die folgende Ausgabe erzeugt.

Hello World!