factograf
PL
Zaloguj się

język programowania

F Sharp

F Sharp
Wszystkie dane z infoboksu 8
Pojawienie się
2005
Paradygmat
wieloparadygmatowy
Typowanie
statyczne, silne, inferencja typów
Aktualna wersja stabilna
10.0(11 listopada 2025)
Twórca
Microsoft Research
Licencja
Licencja MIT
Platforma sprzętowa
wieloplatformowy (.NET, Mono, Javascript)
Platforma systemowa
wieloplatformowy (Windows, Linux, macOS, Android, iOS, Windows Phone i inne)

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

Czytaj dalej

W 34 językach

Tekst z Wikipedii, CC BY-SA 4.0 · Artykuł źródłowy