Wat is F# Interactive?

Voltooid

Soms wilt u het proces van het maken, verpakken en distribueren van een toepassing niet doorlopen. F# Interactive is een interactieve programmeer- en scriptomgeving. Het maakt het eenvoudig om van idee tot code te gaan door u in realtime code te laten schrijven en evalueren via de console- of zelfstandige scriptbestanden.

F# Interactive starten

F# Interactive is ingebouwd in de .NET SDK. U kunt deze starten met de .NET CLI-opdracht dotnet fsi .

dotnet fsi

Read-Evaluate-Print-Loop (REPL)

Als u F# Interactive start, wordt u gestart in een REPL-sessie (read-evaluate-print-loop), waar u uw F#-code kunt schrijven en de uitvoer onmiddellijk in de console kunt evalueren.

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

For help type #help;;

>

Expressies uitvoeren en evalueren

Als u uw invoer wilt evalueren, moet u deze invoeren na het > teken.

> #help;;

Als u bijvoorbeeld de #help opdracht uitvoert, wordt in de uitvoer het helpmenu F# Interactive weergegeven.

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

Het einde van een expressie wordt gescheiden door de ;; tekens. Er wordt geen code geëvalueerd totdat u de ;; tekens invoert. Deze structuur is handig bij het schrijven van expressies met meerdere regels, omdat uw code niet wordt gescheiden door nieuwe regeltekens.

Het evalueren van F#-code werkt op dezelfde manier. Met de volgende code wordt een bericht naar de console afgedrukt.

> printfn "Hello World!";;

De geëvalueerde uitvoer is:

Hello World!
val it : unit = ()

Op de eerste regel wordt de uitvoer van de geëvalueerde code weergegeven terwijl op de tweede regel de typegegevens van de uitvoer worden weergegeven. In dit geval is de uitvoer van de waarde naar de console van het type unit, dat wordt vertegenwoordigd door het () token en gebonden aan de it naam. U hebt later toegang tot de it waarde in uw programma als u meer bewerkingen wilt uitvoeren.

De REPL afsluiten

Nadat u de F# Interactive REPL hebt gebruikt, gebruikt u de #q of #quit opdrachten om af te sluiten.

> #q;;

fsx-scriptbestanden

Als u meer code schrijft, kunt u uw code opslaan in een script met de fsx-bestandsextensie .

Als u hetzelfde voorbeeld gebruikt van het afdrukken van een bericht naar de console, kunt u een bestand maken met de naam my-script.fsx om uw code in te schrijven.

printfn "Hello World!"

Een ding om op te merken is dat u in fsx-bestanden niet hoeft te gebruiken ;; aan het einde van uw expressies. U hebt deze niet nodig omdat F# Interactive in scriptbestanden standaard richtlijnen voor F#-codeopmaak kan gebruiken, zoals inspringing en nieuwe regels.

In plaats van broncode te compileren en vervolgens later de gecompileerde assembly uit te voeren dotnet fsi , kunt u gewoon de naam van het scriptbestand met uw F#-code opgeven, waarna de code wordt gelezen en in realtime wordt uitgevoerd.

dotnet fsi my-script.fsx

Als u dit script uitvoert, wordt de volgende uitvoer gegenereerd.

Hello World!