Hva er F# Interactive?

Fullført

Noen ganger vil du ikke gå gjennom prosessen med å opprette, pakke og distribuere et program. F# Interactive er et interaktivt programmerings- og skriptmiljø. Det gjør det enkelt å gå fra idé til kode ved å la deg skrive og evaluere kode i sanntid gjennom konsollen eller frittstående skriptfiler.

Starter F# Interactive

F# Interactive er innebygd i .NET SDK. Du kan starte den med kommandoen .NET CLI dotnet fsi.

dotnet fsi

Les-evaluer-Print-Loop (REPL)

Når du starter F# Interactive, startes du i en repl-økt (read-evaluate-print-loop), der du kan skrive F#-koden og umiddelbart evaluere utdataene 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;;

>

Kjøre og evaluere uttrykk

Hvis du vil evaluere inndataene, må du skrive det inn etter det > tegnet.

> #help;;

Hvis du for eksempel kjører kommandoen #help, viser utdataene hjelpemenyen F# Interactive.

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 ;; skilles fra slutten av et uttrykk. Ingen kode evalueres før du skriver inn ;; tegn. Denne strukturen er nyttig når du skriver flerlinjede uttrykk siden koden ikke er skilletegn med nye linjetegn.

Evaluering av F#-kode fungerer på samme måte. Følgende kode skriver ut en melding til konsollen.

> printfn "Hello World!";;

Evaluert utdata er:

Hello World!
val it: unit = ()

Den første linjen viser utdataene fra den evaluerte koden, mens den andre linjen viser typeinformasjonen for utdataene. I dette tilfellet er verdien (val) utdata til konsollen av typen unit, som representeres av tokenet () og bundet til it navnet. Du kan få tilgang til den it verdien senere i programmet hvis du vil utføre flere operasjoner.

Avslutte REPL

Når du har brukt F# Interactive REPL, bruker du kommandoene #q eller #quit til å avslutte.

> #q;;

F#-skriptfiler

Når du skriver mer kode, kan du lagre koden i et skript med filtypen fsx.

Hvis du bruker samme eksempel på utskrift av en melding til konsollen, kan du opprette en fil som heter my-script.fsx for å skrive inn koden.

printfn "Hello World!"

En ting å merke seg er imidlertid at i fsx filer, trenger du ikke å bruke ;; på slutten av uttrykkene. Du trenger det ikke fordi F# Interactive i skriptfiler kan bruke standard retningslinjer for F#-kodeformatering, for eksempel innrykk og nye linjer.

I stedet for å kompilere kildekoden og deretter senere kjøre den kompilerte samlingen, kan du bare kjøre dotnet fsi og angi navnet på skriptfilen som inneholder F#-koden, og F# interaktiv leser koden og utfører den i sanntid.

dotnet fsi my-script.fsx

Hvis du kjører dette skriptet, produseres følgende utdata.

Hello World!