Vad är F# Interactive?

Slutförd

Ibland vill du inte gå igenom processen med att skapa, paketera och distribuera ett program. F# Interactive är en interaktiv programmerings- och skriptmiljö. Det gör det enkelt att gå från idé till kod genom att låta dig skriva och utvärdera kod i realtid via konsolen eller fristående skriptfiler.

Starta interaktivT F#

F# Interactive är inbyggt i .NET SDK. Du kan starta den med .NET CLI-kommandot dotnet fsi .

dotnet fsi

Read-Evaluate-Print-Loop (REPL)

När du startar F# Interactive startas du i en REPL-session (read-evaluate-print-loop) där du kan skriva F#-koden och omedelbart utvärdera dess utdata i konsolen.

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

For help type #help;;

>

Köra och utvärdera uttryck

Om du vill utvärdera dina indata måste du ange den efter > tecknet.

> #help;;

Om du till exempel kör #help kommandot visas menyn interaktiv hjälp för F# i utdata.

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

Slutet på ett uttryck avgränsas av ;; tecknen. Ingen kod utvärderas förrän du anger ;; tecknen. Den här strukturen är användbar när du skriver flerradsuttryck eftersom koden inte avgränsas med nya radtecken.

Utvärdering av F#-kod fungerar på samma sätt. Följande kod skriver ut ett meddelande till konsolen.

> printfn "Hello World!";;

De utvärderade utdata är:

Hello World!
val it : unit = ()

Den första raden visar utdata från den utvärderade koden medan den andra raden visar typinformation för utdata. I det här fallet är värdet som utdata till konsolen av typen unit, som representeras av () token och är bunden till it namnet. Du kan komma åt värdet it senare i programmet om du vill utföra fler åtgärder.

Avsluta REPL

När du har använt den interaktiva F#-REPL:n använder du #q kommandona eller #quit för att avsluta.

> #q;;

fsx-skriptfiler

När du skriver mer kod kan du spara koden i ett skript med filnamnstillägget fsx .

Om du använder samma exempel på hur du skriver ut ett meddelande till konsolen kan du skapa en fil med namnet my-script.fsx för att skriva in koden.

printfn "Hello World!"

En sak att notera är dock att i fsx-filer behöver du inte använda ;; i slutet av dina uttryck. Du behöver det inte eftersom F# Interactive i skriptfiler kan använda standardriktlinjer för F#-kodformatering som indrag och nya rader.

I stället för att kompilera källkoden och senare köra den kompilerade sammansättningen kan du bara köra dotnet fsi och ange namnet på din skriptfil som innehåller F#-koden, och F# interactive läser koden och kör den i realtid.

dotnet fsi my-script.fsx

När du kör det här skriptet genereras följande utdata.

Hello World!