Delen via


Interactieve F#-opties

In dit artikel worden de opdrachtregelopties beschreven die worden ondersteund door F# Interactive, fsi.exe. F# Interactive accepteert veel van dezelfde opdrachtregelopties als de F#-compiler, maar accepteert ook enkele extra opties.

F# Interactive gebruiken voor scripting

F# Interactive, dotnet fsikan interactief worden gestart of kan worden gestart vanaf de opdrachtregel om een script uit te voeren. De opdrachtregelsyntaxis is

dotnet fsi [options] [ script-file [arguments] ]

De bestandsextensie voor F#-scriptbestanden is .fsx.

Tabel met interactieve F#-opties

De volgende tabel bevat een overzicht van de opties die worden ondersteund door F# Interactive. U kunt deze opties instellen op de opdrachtregel of via de Visual Studio IDE. Als u deze opties in de Visual Studio IDE wilt instellen, opent u het menu Extra, selecteert u Opties, vouwt u het knooppunt F# Extra uit en selecteert u vervolgens F# Interactive.

Waar lijsten worden weergegeven in argumenten voor interactieve F#-opties, worden lijstelementen gescheiden door puntkomma's (;).

Optie Omschrijving
-- Wordt gebruikt om F# Interactive te instrueren om resterende argumenten te behandelen als opdrachtregelargumenten voor het F#-programma of -script, dat u in code kunt openen met behulp van de lijst fsi. CommandLineArgs.
--checked[+|-] Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.
--codepage:<int> Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.
--consolecolors[+|-] Waarschuwingen en foutberichten in kleur worden weergegeven.
**--compilertool:<extensionsfolder> Verwijzen naar een assembly of map met een ontwerptijdhulpmiddel (korte vorm: -t).
--crossoptimize[+|-] Optimalisaties voor meerdere modules in- of uitschakelen.
--foutopsporing[+|-]

--debug:[full|pdbonly|portable|embedded]

-g[+|-]

-g:[full|pdbonly|portable|embedded]
Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.
--define:<string> Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.
--deterministisch[+|-] Produceert een deterministische assembly (inclusief GUID van moduleversie en tijdstempel).
--Uitvoerend Hiermee wordt F# interactief geïnstrueerd om af te sluiten na het laden van de bestanden of het uitvoeren van het scriptbestand dat is opgegeven op de opdrachtregel.
--fullpaths Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.
--gui[+|-] Hiermee schakelt u de Windows Forms-gebeurtenislus in of uit. De standaardwaarde is ingeschakeld.
--Help

-?
Wordt gebruikt om de opdrachtregelsyntaxis en een korte beschrijving van elke optie weer te geven.
--lib:<folder-list>

-I:<folder-list>
Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.
--load:<bestandsnaam> Compileert de opgegeven broncode bij het opstarten en laadt de gecompileerde F#-constructies in de sessie.
--mlcompatibiliteit Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.
--noframework Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie
--nologo Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.
--nowarn:<warning-list> Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.
--optimize[+|-] Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.
--preferreduilang:<lang> Hiermee geeft u de naam van de voorkeurstaalcultuur (bijvoorbeeld es-ES, ja-JP).
--Rustige De uitvoer van F# Interactive onderdrukken naar de stdout-stream .
--offerte-foutopsporing Hiermee geeft u op dat er extra foutopsporingsgegevens moeten worden verzonden voor expressies die zijn afgeleid van letterlijke F#-aanhalingstekens en definities. De foutopsporingsgegevens worden toegevoegd aan de aangepaste kenmerken van een F#-expressiestructuurknooppunt. Zie Codecitaten en Expr.CustomAttributes.
--readline[+|-] Schakel tabvoltooiing in of uit in de interactieve modus.
--reference:<bestandsnaam>

-r:<bestandsnaam>
Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.
--tailcalls[+|-] Schakel het gebruik van de tail IL-instructie in of uit, waardoor het stackframe opnieuw wordt gebruikt voor recursieve staartfuncties. Deze optie is standaard ingeschakeld.
--targetprofile:<string> Hiermee geeft u het doelframeworkprofiel van deze assembly op. Geldige waarden zijn mscorlib, netcoreof netstandard. De standaardwaarde is mscorlib.
--use:<bestandsnaam> Geeft aan dat de interpreter het opgegeven bestand moet gebruiken bij het opstarten als initiële invoer.
--utf8output Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.
--waarschuwen:<waarschuwingsniveau> Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.
--warnaserror[+|-] Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.
--warnaserror[+|-]:<int-list> Hetzelfde als de fsc.exe compileroptie. Zie Compileropties voor meer informatie.

F# Interactief gestructureerd afdrukken

F# Interactive (dotnet fsi) maakt gebruik van een uitgebreide versie van gestructureerde tekstopmaak zonder opmaak om waarden te rapporteren.

  1. Alle functies van %A tekst zonder opmaak worden ondersteund en sommige functies kunnen ook worden aangepast.

  2. Afdrukken wordt gekleurd als kleuren worden ondersteund door de uitvoerconsole.

  3. Er wordt een limiet geplaatst voor de lengte van tekenreeksen die worden weergegeven, tenzij u die tekenreeks expliciet evalueert.

  4. Er is een set door de gebruiker gedefinieerde instellingen beschikbaar via het fsi object.

De beschikbare instellingen voor het aanpassen van tekst zonder opmaak voor gerapporteerde waarden zijn:

open System.Globalization

fsi.FormatProvider <- CultureInfo("de-DE")  // control the default culture for primitives

fsi.PrintWidth <- 120        // Control the width used for structured printing

fsi.PrintDepth <- 10         // Control the maximum depth of nested printing

fsi.PrintLength <- 10        // Control the length of lists and arrays

fsi.PrintSize <- 100         // Control the maximum overall object count

fsi.ShowProperties <- false  // Control whether properties of .NET objects are shown by default

fsi.ShowIEnumerable <- false // Control whether sequence values are expanded by default

fsi.ShowDeclarationValues <- false // Control whether values are shown for declaration outputs

Aanpassen met AddPrinter en AddPrintTransformer

Afdrukken in F# Interactieve uitvoer kan worden aangepast met behulp van fsi.AddPrinter en fsi.AddPrintTransformer. De eerste functie geeft tekst om het afdrukken van een object te vervangen. De tweede functie retourneert een surrogaatobject dat in plaats daarvan wordt weergegeven. Denk bijvoorbeeld aan de volgende F#-code:

open System

fsi.AddPrinter<DateTime>(fun dt -> dt.ToString("s"))

type DateAndLabel =
    { Date: DateTime
      Label: string  }

let newYearsDay1999 =
    { Date = DateTime(1999, 1, 1)
      Label = "New Year" }

Als u het voorbeeld in F# Interactive uitvoert, wordt het uitgevoerd op basis van de opmaakoptieset. In dit geval is dit van invloed op de opmaak van datum en tijd:

type DateAndLabel =
  { Date: DateTime
    Label: string }
val newYearsDay1999 : DateAndLabel = { Date = 1999-01-01T00:00:00
                                       Label = "New Year" }

fsi.AddPrintTransformer kan worden gebruikt om een surrogaatobject te geven voor afdrukken:

type MyList(values: int list) =
    member _.Values = values

fsi.AddPrintTransformer(fun (x:MyList) -> box x.Values)

let x = MyList([1..10])

Dit levert de volgende uitvoer op:

val x : MyList = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]

Als de transformatorfunctie wordt doorgegeven om terug te fsi.AddPrintTransformer keren null, wordt de afdruktransformatie genegeerd. Dit kan worden gebruikt om elke invoerwaarde te filteren door te beginnen met het type obj. Voorbeeld:

fsi.AddPrintTransformer(fun (x:obj) ->
    match x with
    | :? string as s when s = "beep" -> box ["quack"; "quack"; "quack"]
    | _ -> null)

let y = "beep"

Dit levert de volgende uitvoer op:

val y : string = ["quack"; "quack"; "quack"]
Title Beschrijving
Opties voor compileren Beschrijft opdrachtregelopties die beschikbaar zijn voor de F#-compiler, fsc.exe.