Hvad er F# Interactive?
Nogle gange ønsker du ikke at gennemgå processen med at oprette, pakke og distribuere et program. F# Interactive er et interaktivt programmerings- og scriptmiljø. Det gør det nemt at gå fra idé til kode ved at lade dig skrive og evaluere kode i realtid via konsol- eller enkeltstående scriptfiler.
Starter F# Interactive
F# Interactive er indbygget i .NET SDK. Du kan starte med kommandoen .NET CLI dotnet fsi.
dotnet fsi
Læs-Evaluer-Print-Loop (REPL)
Når du starter F# Interactive, startes du i en REPL-session (read-evaluate-print-loop), hvor du kan skrive din F#-kode og straks evaluere outputtet i konsollen.
Microsoft (R) F# Interactive version 13.9.201.0 for F# 9.0
Copyright (c) Microsoft Corporation. All Rights Reserved.
For help type #help;;
>
Kør og evaluer udtryk
Hvis du vil evaluere dit input, skal du angive det efter det > tegn.
> #help;;
Hvis du f.eks. kører kommandoen #help, viser outputtet menuen F# Interactive Help.
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
Tegnene ;; afgrænser slutningen af et udtryk. Ingen kode evalueres, før du angiver de ;; tegn. Denne struktur er nyttig, når du skriver udtryk med flere linjer, da din kode ikke er afgrænset med nye linjetegn.
Evaluering af F#-kode fungerer på samme måde. Følgende kode udskriver en meddelelse til konsollen.
> printfn "Hello World!";;
Det evaluerede output er:
Hello World!
val it: unit = ()
På den første linje vises outputtet fra den evaluerede kode, mens den anden linje viser typeoplysningerne for outputtet. I dette tilfælde er værdien (val) outputtet til konsollen af typen unit, som repræsenteres af tokenet () og bundet til navnet it . Du kan få adgang til it værdi senere i programmet, hvis du vil udføre flere handlinger.
Afslutter REPL
Når du har brugt F# Interactive REPL, skal du bruge kommandoerne #q eller #quit til at afslutte.
> #q;;
F#-scriptfiler
Når du skriver mere kode, kan du gemme koden i et script med filtypenavnet fsx.
Hvis du bruger det samme eksempel på udskrivning af en meddelelse i konsollen, kan du oprette en fil med navnet my-script.fsx at skrive koden i.
printfn "Hello World!"
En ting at bemærke er dog, at i fsx filer, behøver du ikke at bruge ;; i slutningen af dine udtryk. Du behøver den ikke, fordi F# Interactive i scriptfiler kan bruge standard retningslinjer for F#-kodeformatering, f.eks. indrykning og nye linjer.
I stedet for at kompilere kildekoden og derefter senere køre den kompilerede assembly kan du bare køre dotnet fsi og angive navnet på den scriptfil, der indeholder din F#-kode, og F# interactive læser koden og udfører den i realtid.
dotnet fsi my-script.fsx
Hvis du kører dette script, oprettes følgende output.
Hello World!