Mi az az F# Interactive?

Befejeződött

Néha nem szeretne végighaladni az alkalmazások létrehozásának, csomagolásának és terjesztésének folyamatán. Az F# Interactive egy interaktív programozási és szkriptelési környezet. Egyszerűvé teszi az ötlettől a kódig való váltást azáltal, hogy lehetővé teszi a kód valós idejű írását és kiértékelését a konzolon vagy önálló szkriptfájlokon keresztül.

Az F# Interactive indítása

Az F# Interactive a .NET SDK-ba van beépítve. A .NET CLI dotnet fsi paranccsal indíthatja el.

dotnet fsi

Read-Evaluate-Print-Loop (REPL)

Az F# Interactive indítása egy olvasási-kiértékelő-nyomtatási ciklus (REPL) munkamenetbe indítja, ahol megírhatja az F#-kódot, és azonnal kiértékelheti annak kimenetét a konzolon.

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

For help type #help;;

>

Kifejezések futtatása és kiértékelése

A bemenet kiértékeléséhez a karakter után kell megadnia > .

> #help;;

Ha például futtatja a #help parancsot, a kimenet az F# interaktív súgómenüt jeleníti meg.

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

A ;; karakterek elhatárolják egy kifejezés végét. A rendszer nem értékel ki kódot, amíg be nem írja a karaktereket ;; . Ez a struktúra többsoros kifejezések írásakor hasznos, mivel a kód nincs új vonalkarakterekben elválasztva.

Az F#-kód kiértékelése ugyanúgy működik. Az alábbi kód egy üzenetet nyomtat ki a konzolra.

> printfn "Hello World!";;

A kiértékelt kimenet a következő:

Hello World!
val it: unit = ()

Az első sor a kiértékelt kód kimenetét jeleníti meg, a második sor pedig a kimenet típusadatait. Ebben az esetben a konzol értékének (val) kimenete típus unit, amelyet a () jogkivonat jelöl, és a it névhez van kötve. Ha további műveleteket szeretne végrehajtani, később hozzáférhet it az értékhez a programban.

Kilépés a REPL-ből

Az F# Interaktív REPL használata után a #q#quit parancsokkal lépjen ki.

> #q;;

F#-szkriptfájlok

Ha további kódot ír, a kódot egy szkriptbe mentheti az fsx fájlkiterjesztéssel.

Ha ugyanezt a példát használja egy üzenet konzolra való nyomtatására, létrehozhat egy my-script.fsx nevű fájlt a kód beírásához.

printfn "Hello World!"

Azt azonban érdemes megjegyezni, hogy az fsx-fájlokban nem kell a kifejezések végén használnia;;. Nincs rá szüksége, mert a szkriptfájlokban az F# Interactive szabványos F#-kódformázási irányelveket, például behúzást és új sorokat használhat.

A forráskód összeállítása, majd a lefordított szerelvény későbbi futtatása helyett egyszerűen futtathatja dotnet fsi és megadhatja az F#-kódot tartalmazó szkriptfájl nevét, az F# interactive pedig felolvassa és valós időben végrehajtja a kódot.

dotnet fsi my-script.fsx

A szkript futtatása a következő kimenetet hozza létre.

Hello World!