Hvad er F# Interactive?

Fuldført

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!