F# Etkileşimli nedir?
Bazen bir uygulama oluşturma, paketleme ve dağıtma sürecinden geçmek istemezsiniz. F# Interactive, etkileşimli bir programlama ve betik oluşturma ortamıdır. Konsol veya tek başına betik dosyaları aracılığıyla gerçek zamanlı olarak kod yazmanızı ve değerlendirmenizi sağlayarak, fikirden koda geçmenizi kolaylaştırır.
F# Etkileşimli'ye Başlama
F# Interactive. .NET SDK'sı yerleşik olarak bulunur. .NET CLI dotnet fsi
komutuyla başlatabilirsiniz.
dotnet fsi
Read-Evaluate-Print-Loop (REPL)
F# Etkileşimli'yi başlatmak, sizi F# kodunuzu yazabileceğiniz ve konsoldaki çıktısını hemen değerlendirebileceğiniz bir read-evaluate-print-loop (REPL) oturumuna başlatır.
Microsoft (R) F# Interactive version 11.4.2.0 for F# 5.0
Copyright (c) Microsoft Corporation. All Rights Reserved.
For help type #help;;
>
İfadeleri çalıştırma ve değerlendirme
Girişinizi değerlendirmek için karakterden >
sonra girmeniz gerekir.
> #help;;
Örneğin, komutunu çalıştırırsanız #help
çıkışta F# Etkileşimli yardım menüsü gösterilir.
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
bir ifadenin sonu karakterlerle ;;
sınırlandırılır. Siz karakterleri girdiye kadar kod değerlendirilmez ;;
. Kodunuz yeni satır karakterleriyle sınırlandırılamadığından çok satırlı ifadeler yazarken bu yapı kullanışlıdır.
F# kodunu değerlendirmek de aynı şekilde çalışır. Aşağıdaki kod konsola bir ileti yazdırır.
> printfn "Hello World!";;
Değerlendirilen çıkış:
Hello World!
val it : unit = ()
İlk satır, değerlendirilen koddan çıkışı görüntülerken, ikinci satır çıkışın tür bilgilerini görüntüler. Bu durumda, konsola değer çıkışı, belirteçle ()
temsil edilen ve ada bağlı it
olan türündedirunit
. Daha fazla işlem gerçekleştirmek istiyorsanız, bu değere daha sonra programınızda erişebilirsiniz it
.
REPL'dan çıkma
F# Etkileşimli REPL'sini #q
kullandıktan sonra çıkmak için veya #quit
komutlarını kullanın.
> #q;;
fsx betik dosyaları
Daha fazla kod yazarken, kodunuzu fsx dosya uzantısıyla bir betikte kaydedebilirsiniz.
Konsola ileti yazdırmanın aynı örneğini kullanırsanız, kodunuzu yazmak için my-script.fsx adlı bir dosya oluşturabilirsiniz.
printfn "Hello World!"
Ancak, fsx dosyalarında ifadelerinizin sonunda kullanmanız ;;
gerekmemesi dikkate almanız gerekir. Buna ihtiyacınız yoktur çünkü betik dosyalarında F# Interactive girintileme ve yeni satırlar gibi standart F# kod biçimlendirme yönergelerini kullanabilir.
Kaynak kodu derleyip daha sonra derlenmiş derlemeyi çalıştırmak yerine F# kodunuzu içeren betik dosyanızın adını çalıştırabilir dotnet fsi
ve belirtebilirsiniz; F# etkileşimli kodu okur ve gerçek zamanlı olarak yürütür.
dotnet fsi my-script.fsx
Bu betiği çalıştırmak aşağıdaki çıkışı oluşturur.
Hello World!