F Sharp
Logo języka | |
Pojawienie się |
2005 |
---|---|
Paradygmat | |
Typowanie | |
Aktualna wersja stabilna |
9 |
Twórca | |
Licencja | |
Platforma sprzętowa | |
Platforma systemowa |
wieloplatformowy (Windows, Linux, macOS, Android, iOS, Windows Phone i inne) |
Strona internetowa |
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
[edytuj | edytuj kod]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"
[edytuj | edytuj kod]printfn "Witaj, Świecie!"
Żądanie HTTP
[edytuj | edytuj kod]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
[edytuj | edytuj kod]/// 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
[edytuj | edytuj kod]- ↑ Licencja języka F#. [dostęp 2018-10-16].
- ↑ Fable is an F# to JavaScript compiler. [dostęp 2018-10-16].