Aracılığıyla paylaş


F# Etkileşimli seçenekler

Bu makalede F# Interactive tarafından desteklenen komut satırı seçenekleri fsi.exeaçıklanmaktadır. F# Etkileşimli, F# derleyicisi ile aynı komut satırı seçeneklerinin çoğunu kabul eder, ancak bazı ek seçenekleri de kabul eder.

Betik yazmak için F# Interactive kullanın

F# Etkileşimli, dotnet fsietkileşimli olarak başlatılabilir veya komut satırından betik çalıştırmak için başlatılabilir. Komut satırı söz dizimi şu şekildedir:

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

F# betik dosyalarının dosya uzantısı .fsx.

F# Etkileşimli Seçenekler Tablosu

Aşağıdaki tabloda F# Interactive tarafından desteklenen seçenekler özetlenmiştir. Bu seçenekleri komut satırında veya Visual Studio IDE aracılığıyla ayarlayabilirsiniz. Visual Studio IDE'de bu seçenekleri ayarlamak için Araçları menüsünü açın, Seçenekler seçin, F# Araçları düğümünü genişletin ve ardından F# Etkileşimliöğesini seçin.

F# Etkileşimli seçenek bağımsız değişkenlerinde listeler göründüğünde, liste öğeleri noktalı virgülle (;) ayrılır.

Seçenek Açıklama
-- F# Etkileşimli'ye, fsi listesini kullanarak kodda erişebileceğiniz F# programı veya betiğine komut satırı bağımsız değişkenleri olarak kalan bağımsız değişkenleri ele alma talimatı vermek için kullanılır. CommandLineArgs.
--checked[+|-] fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--checknulls[+|-] fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--codepage:<int> fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--consolecolors[+|-] Uyarı ve hata iletilerini renkli olarak çıkışlar.
**--compilertool:<extensionsfolder> Tasarım zaman aracı içeren bir derlemeye veya dizine başvurma (Kısa form: -t).
--crossoptimize[+|-] Modüller arası iyileştirmeleri etkinleştirin veya devre dışı bırakın.
--debug[+|-]

--debug:[tam|pdbonly|taşınabilir|gömülü]

-g[+|-]

-g:[tam|pdbonly|taşınabilir|katıştırılmış]
fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--define:<dize> fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--deterministic[+|-] Belirleyici bir derleme (modül sürümü GUID'si ve zaman damgası dahil) oluşturur.
--exec F# etkileşimli'ye, dosyaları yükledikten veya komut satırında verilen betik dosyasını çalıştırdıktan sonra çıkmasını ister.
--fullpaths fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--gui[+|-] Windows Forms olay döngüsünü etkinleştirir veya devre dışı bırakır. Varsayılan etkindir.
--help

-?
Komut satırı söz dizimini ve her seçeneğin kısa açıklamasını görüntülemek için kullanılır.
--lib:<klasör listesi>

-I:<klasör listesi>
fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--load:<dosya adı> Başlangıçta verilen kaynak kodunu derler ve derlenmiş F# yapılarını oturuma yükler.
--mlcompatibility fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--noframework fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri
--nologo fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--nowarn:<uyarı listesi> fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--optimize[+|-] fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--tercihedilenDil:<dil> Tercih edilen çıkış dili kültür adını belirtir (örneğin, es-ES, ja-JP).
--sessiz F# Interactive çıktısını stdout akışına bastırın.
--quotations-debug F# alıntı sabitlerinden ve yansıyan tanımlardan türetilen ifadeler için ek hata ayıklama bilgilerinin üretilmesi gerektiğini belirtir. Hata ayıklama bilgileri bir F# ifade ağacı düğümünün özel özniteliklerine eklenir. Bkz. Kod Teklifleri ve Expr.CustomAttributes.
--readline[+|-] Etkileşimli modda sekme tamamlamayı etkinleştirin veya devre dışı bırakın.
--reference:<dosya adı>

-r:<dosya adı>
fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--tailcalls[+|-] Kuyruk özyinelemeli işlevleri için yığın çerçevesinin yeniden kullanılmasına neden olan tail IL yönergesinin kullanımını etkinleştirin veya devre dışı bırakın. Bu seçenek varsayılan olarak etkindir.
--targetprofile:<dize> Derlemenin hedef çerçeve profilini belirtir. Geçerli değerler mscorlib, netcoreveya netstandard. Varsayılan değer mscorlib.
--use:<dosya adı> Yorumlayıcıya başlangıçta verilen dosyayı ilk giriş olarak kullanmasını söyler.
--utf8output fsc.exe derleyici seçeneğiyle aynı. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--warn:<uyarı düzeyi> fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--warnaserror[+|-] fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.
--warnaserror[+|-]:<tam sayı listesi> fsc.exe derleyici seçeneğiyle aynıdır. Daha fazla bilgi için bkz. Derleyici Seçenekleri.

F# Etkileşimli yapılandırılmış yazdırma

F# Etkileşimli (dotnet fsi), değerleri raporlamak için yapılandırılmış düz metin biçimlendirmesinin genişletilmiş bir sürümünü kullanır.

  1. %A düz metin biçimlendirmesinin tüm özellikleri desteklenir ve bazıları ek olarak özelleştirilebilir.

  2. Renkler çıkış konsolu tarafından destekleniyorsa yazdırma renklendirilir.

  3. Bu dizeyi açıkça değerlendirmediğiniz sürece, gösterilen dizelerin uzunluğuna bir sınır yerleştirilir.

  4. fsi nesnesi aracılığıyla kullanıcı tarafından tanımlanabilir ayarlar kümesi sağlanır.

Bildirilen değerler için düz metin yazdırmayı özelleştirmek için kullanılabilir ayarlar şunlardır:

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

AddPrinter ve AddPrintTransformer ile özelleştirme

F# Etkileşimli çıkışlarında yazdırma, fsi.AddPrinter ve fsi.AddPrintTransformerkullanılarak özelleştirilebilir. İlk işlev, bir nesnenin yazdırma işlemini değiştirmek için metin sağlar. İkinci işlev bunun yerine görüntülenecek bir vekil nesne döndürür. Örneğin, aşağıdaki F# kodunu göz önünde bulundurun:

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

Örneği F# Interactive'de çalıştırırsanız, biçimlendirme seçeneğine göre sonuç verir. Bu durumda, tarih ve saat biçimlendirmesini etkiler:

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

fsi.AddPrintTransformer, yazdırma için vekil nesne vermek için kullanılabilir:

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

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

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

Bu çıktı:

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

fsi.AddPrintTransformer işlevine geçirilen dönüştürücü nulldöndürürse, yazdırma dönüştürücüsü yoksayılır. Bu, objtürüyle başlayarak herhangi bir giriş değerini filtrelemek için kullanılabilir. Mesela:

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

let y = "beep"

Bu çıktı:

val y : string = ["quack"; "quack"; "quack"]
Başlık Açıklama
Derleyici Seçenekleri F# derleyicisi için kullanılabilen komut satırı seçeneklerini fsc.exeaçıklar.