Wat is F# Interactive?
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
Lees-Evalueer-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 13.9.201.0 for F# 9.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
#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
De ;;
tekens scheiden het einde van een expressie. 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 waarde (val
) uitvoer naar de console van het type unit
, die wordt vertegenwoordigd door het ()
token en afhankelijk is van 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;;
F#-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!