Bu maddenin doğru adı
F# biçimindedir fakat
# karakteri teknik nedenlerden dolayı kaldırılmıştır.
F#
Microsoft Research tarafından geliştirilen ve
.NET Framework üzerinde çalışan fonksiyonel programlama dilidir.
Başlıca özellikleri - Type(Tip) Güvenli
- Thread Güvenli
- Nesne yönelimli programlama dillerine göre daha az kod ile aynı işi yapabilme
- Matematiksel ve Statiksel yazılımlar için daha uygun olması
Syntax
F# da göze çarpan ilk önemli komut
"let" dir. Bu komut ile bir değişkene değeri kaydederiz.
Örnek: let ircrehberi = 10 <- 19
************************************************** ****************
F #, doğru ve sürdürülebilir kod yazmayı kolaylaştıran işlevsel bir programlama dilidir.
F # programlama öncelikle tür tarafından çıkarılan ve genelleştirilmiş, otomatik olarak oluşturulan türleri ve işlevleri tanımlamayı içerir. Bu, odağın sorun etki alanında kalmasına ve programlama ayrıntıları yerine verilerinin işlenmesine olanak tanır.
PHP- Kodu
open System // Gets access to functionality in System namespace.
// Defines a function that takes a name and produces a greeting.
let getGreeting name = $"Hello, {name}! Isn't F# great?"
[<EntryPoint>]
let main args =
// Defines a list of names
let names = [ "Don"; "Julia"; "Xi" ]
// Prints a greeting for each name!
names
|> List.map getGreeting
|> List.iter (fun greeting -> printfn $"{greeting}")
0
F #, aşağıdakiler dahil olmak üzere çeşitli özelliklere sahiptir:
- Hafif sözdizimi
- Varsayılan olarak sabit
- Tür çıkarımı ve otomatik Genelleştirme
- Birinci sınıf işlevler
- Güçlü veri türleri
- Desen eşleştirme
- Zaman uyumsuz programlama
Zengin veri türleri
Kayıtlar ve ayırt edici birleşimler gibi veri türleri, karmaşık verileri ve etki alanlarını temsil etmenize olanak tanır.
PHP- Kodu
// Group data with Records
type SuccessfulWithdrawal =
{ Amount: decimal
Balance: decimal }
type FailedWithdrawal =
{ Amount: decimal
Balance: decimal
IsOverdraft: bool }
// Use discriminated unions to represent data of 1 or more forms
type WithdrawalResult =
| Success of SuccessfulWithdrawal
| InsufficientFunds of FailedWithdrawal
| CardExpired of System.DateTime
| UndisclosedFailure
F # kayıtları ve ayrılmış birleşimler, varsayılan olarak boş, değişmez ve karşılaştırılabilir değildir. Bu, kullanımı çok kolay hale getirir.
İşlevler ve model eşleştirme ile uygulanan doğruluk
F # işlevlerinin kolayca bildirilmesini ve güçlü bir yöntem olduğunu. Desenler eşleştirilirken, doğruluk derleyici tarafından zorlanan davranışı tanımlamanızı sağlar.
PHP- Kodu
// Returns a WithdrawalResult
let withdrawMoney amount = // Implementation elided
let handleWithdrawal amount =
let w = withdrawMoney amount
// The F# compiler enforces accounting for each case!
match w with
| Success s -> printfn "Successfully withdrew %f{s.Amount}"
| InsufficientFunds f -> printfn "Failed: balance is %f{f.Balance}"
| CardExpired d -> printfn "Failed: card expired on {d}"
| UndisclosedFailure -> printfn "Failed: unknown :("
F # işlevleri de birinci sınıftır, yani parametre olarak geçirilebilir ve diğer işlevlerden geri döndürülebilecek anlamına gelir.
Nesneler üzerinde işlem tanımlamak için işlevler
F #, veri ve işlevsellik Blend gerektiğinde yararlı veri türleri olan nesneler için tam desteğe sahiptir. F # işlevleri nesneleri işlemek için kullanılır.
PHP- Kodu
type Set<'T when 'T: comparison>(elements: seq<'T>) =
member s.IsEmpty = // Implementation elided
member s.Contains (value) =// Implementation elided
member s.Add (value) = // Implementation elided
// ...
// Further Implementation elided
// ...
interface IEnumerable<‘T>
interface IReadOnlyCollection<‘T>
module Set =
let isEmpty (set: Set<'T>) = set.IsEmpty
let contains element (set: Set<'T>) = set.Contains(element)
let add value (set: Set<'T>) = set.Add(value)
Nesne odaklı kod yazmak yerine, F # ' da genellikle nesneleri işlemek için işlevlere başka bir veri türü olarak niteleyen kodu yazarsınız. Genel arabirimler, nesne ifadelerive üyenin akıllıca kullanımı gibi özellikler daha büyük F # programlarında ortaktır.
Kaynak :
[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...]