F Sharp

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania
Spacer.gif Właściwy tytuł tego artykułu to F#. Z powodu ograniczeń technicznych tytuł wyświetlany na górze strony jest nieprawidłowy.
F#
Pojawienie się 2005
Paradygmat wieloparadygmatowy
Typowanie statyczne, silne, inferencja typów
Aktualna wersja stabilna 4.5 / 14 sierpnia 2018; 4 miesiące temu[1]
Twórca Microsoft Research
Licencja Licencja MIT[2]
Platforma sprzętowa wieloplatformowy (.NET, Mono, Javascript[3])
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 F# 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]

  1. Announcing F# 4.5 (ang.). Microsoft.
  2. Licencja języka F#. [dostęp 2018-10-16].
  3. Fable is an F# to JavaScript compiler. [dostęp 2018-10-16].

Linki zewnętrzne[edytuj | edytuj kod]