Opsi Interaktif F#

Artikel ini menjelaskan opsi baris perintah yang didukung oleh F# Interactive, fsi.exe. F# Interactive menerima banyak opsi baris perintah yang sama dengan pengompilasi F#, tetapi juga menerima beberapa opsi tambahan.

Menggunakan F# Interactive untuk pembuatan skrip

F# Interaktif, dotnet fsi, dapat diluncurkan secara interaktif, atau dapat diluncurkan dari baris perintah untuk menjalankan sebuah skrip. Sintaks baris perintah adalah

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

Ekstensi file untuk file skrip F# adalah .fsx.

Tabel Opsi F# Interactive

Tabel berikut ini meringkas opsi yang didukung oleh F# Interactive. Anda dapat mengatur opsi ini pada baris perintah atau melalui IDE Visual Studio. Untuk mengatur opsi ini di IDE Visual Studio, buka menu Tools (Alat), pilih Options (Opsi), perluas simpul F# Tools (Alat F#), lalu pilih F# Interactive.

Tempat daftar muncul dalam argumen opsi F# Interactive, elemen daftar dipisahkan oleh titik koma (;).

Opsi Deskripsi
-- Digunakan guna menginstruksikan F# Interactive untuk memperlakukan argumen yang tersisa sebagai argumen baris perintah ke program atau skrip F#, yang dapat Anda akses dalam kode menggunakan daftar fsi.CommandLineArgs.
--checked[+|-] Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.
--codepage:<int> Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.
--consolecolors[+|-] Menghasilkan pesan peringatan dan kesalahan berwarna.
**--compilertool:<extensionsfolder> Referensikan rakitan atau direktori yang berisi alat waktu desain (Bentuk pendek: -t).
--crossoptimize[+|-] Mengaktifkan atau menonaktifkan pengoptimalan lintas modul.
--debug[+|-]

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

-g[+|-]

-g:[full|pdbonly|portable|embedded]
Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.
--define:<string> Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.
--deterministic[+|-] Menghasilkan rakitan deterministik (termasuk GUID versi modul dan stempel waktu).
--exec Menginstruksikan F# Interaktive untuk keluar setelah memuat file atau menjalankan file skrip yang diberikan pada baris perintah.
--fullpaths Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.
--gui[+|-] Mengaktifkan atau menonaktifkan perulangan peristiwa Formulir Windows. Defaultnya diaktifkan.
--help

-?
Digunakan untuk menampilkan sintaks baris perintah dan deskripsi singkat setiap opsi.
--lib:<folder-list>

-I:<folder-list>
Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.
--load:<filename> Mengompilasi kode sumber yang diberikan saat startup dan memuat konstruksi F# yang dikompilasi ke dalam sesi.
--mlcompatibility Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.
--noframework Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengompilasi.
--nologo Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.
--nowarn:<warning-list> Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.
--optimize[+|-] Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.
--preferreduilang:<lang> Menentukan nama budaya bahasa pemrogram output pilihan (misalnya, es-ES, ja-JP).
--quiet Menekan output F# Interactive ke aliran stdout.
--quotations-debug Menentukan bahwa informasi penelusuran kesalahan tambahan harus dimunculkan untuk ekspresi yang berasal dari harfiah kutipan F# dan definisi yang tercermin. Informasi penelusuran kesalahan ditambahkan ke atribut kustom dari simpul pohon ekspresi F#. Lihat Kutipan Kode dan Expr.CustomAttributes.
--readline[+|-] Mengaktifkan atau menonaktifkan penyelesaian tab dalam mode interaktif.
--reference:<filename>

-r:<filename>
Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.
--tailcalls[+|-] Mengaktifkan atau menonaktifkan penggunaan instruksi bahasa perantara ekor, yang menyebabkan bingkai tumpukan digunakan kembali untuk fungsi rekursif ekor. Pemadatan diaktifkan secara default.
--targetprofile:<string> Menentukan profil kerangka kerja target dari rakitan ini. Nilai yang valid adalah mscorlib, netcore, atau netstandard. Default adalah mscorlib.
--use:<filename> Memberi tahu penerjemah untuk menggunakan file yang diberikan pada startup sebagai input awal.
--utf8output Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.
--warn:<warning-level> Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.
--warnaserror[+|-] Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.
--warnaserror[+|-]:<int-list> Sama seperti opsi pengompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Kompilator.

Pencetakan terstruktur F# Interactive

F# Interactive (dotnet fsi) menggunakan versi ekstensi pemformatan teks biasa terstruktur untuk melaporkan nilai.

  1. Semua fitur pemformatan teks biasa %A didukung, dan beberapa fitur juga dapat disesuaikan.

  2. Pencetakan diberi warna jika warna didukung oleh konsol output.

  3. Batas ditempatkan pada panjang string yang ditampilkan, kecuali Anda secara eksplisit mengevaluasi string tersebut.

  4. Sekumpulan pengaturan yang dapat ditentukan pengguna tersedia melalui objek fsi.

Pengaturan yang tersedia untuk menyesuaikan pencetakan teks biasa untuk nilai yang dilaporkan adalah:

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

Kustomisasi dengan AddPrinter dan AddPrintTransformer

Pencetakan dalam output F# Interactive dapat disesuaikan menggunakan fsi.AddPrinter dan fsi.AddPrintTransformer. Fungsi pertama memberikan teks untuk menggantikan pencetakan objek. Fungsi kedua mengembalikan objek pengganti untuk ditampilkan sebagai gantinya. Sebagai contoh, perhatikan kode F# berikut:

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" }

Jika Anda menjalankan contoh di F# Interactive, hasilnya didasarkan pada kumpulan opsi pemformatan. Di sini, hal ini memengaruhi pemformatan tanggal dan waktu:

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

fsi.AddPrintTransformer dapat digunakan untuk memberikan objek pengganti bagi pencetakan:

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

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

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

Output ini:

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

Jika fungsi transformator yang diteruskan ke fsi.AddPrintTransformer mengembalikan null, transformator cetak akan diabaikan. Ini dapat digunakan untuk memfilter semua nilai input dengan memulai menggunakan jenis obj. Misalnya:

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

let y = "beep"

Output ini:

val y : string = ["quack"; "quack"; "quack"]
Judul Deskripsi
Opsi Kompilator Menjelaskan opsi baris perintah yang tersedia untuk pengompilasi F#, fsc.exe.