F# – wieloparadygmatowy język programowania zawierający w sobie głównie cechy języka funkcyjnego, ale umożliwiającym także pisanie kodu imperatywnego oraz obiektowego. Jest językiem silnie typowanym zaprojektowanym w celu pisania prostego, solidnego i wydajnego kodu do rozwiązywania złożonych problemów. F# łączy w sobie cechy takie jak zwięzłość, wydajność i ekspresywność. Język ten jest przykładem otwartego oprogramowania.
F# należy do rodziny języków ML, ale posiada również funkcjonalności inspirowane innymi językami, np. leniwe sekwencje wzorowane na języku Haskell. Posiada także funkcjonalności nieobecne w innych językach programowania, na przykład wbudowaną obsługę jednostek miar. Przykładowe programy
W przypadku wykonywania kodu języka F# w interaktywnej powłoce fsharpi, każde wyrażenie musi być zakończone dwoma średnikami (;;).
Program „Hello world” printfn "Witaj, Świecie!"
Żądanie HTTP open System.Net let httpGet (url : string) = use wc = new WebClient() wc.DownloadString(url)
httpGet "https://pl.wikipedia.org/wiki/F_Sharp"
Leniwie wartościowany Ciąg Fibonacciego /// Ciąg Fibonacciego od trzeciego wyrazu let fibonacciSeq = Seq.unfold (fun (x, y) -> Some(x + y, (y, x + y))) (0, 1)
/// Lista zawierająca pięć pierwszych elementów ciągu let firstFive = Seq.take 5 fibonacciSeq |> Seq.toList // val it : int list = [1; 2; 3; 5; 8]
/// Dziewiąty element ciągu let ninth = Seq.item 8 fibonacciSeq // val it : int = 55
/// Funkcja obliczająca średnią pierwszych `n' elementów ciągu let seqAverage seq n = Seq.take n seq |> Seq.map float |> Seq.average
/// Funkcja obliczająca średnią pierwszych `n' elementów ciągu Fibonacciego wykorzystująca ``auto-currying'' let fibonacciAverage = seqAverage fibonacciSeq
fibonacciAverage 10 // val it : float = 23.1
Przypisy
Linki zewnętrzne F# Software Foundation Try F# – nauka oraz możliwość wypróbowania języka
Kategoria:Języki programowania Kategoria:.NET