F Sharp

z Wikipédie, slobodnej encyklopédie
Prejsť na: navigácia, hľadanie
Icon falscher Titel.svg Názov tohto článku je nesprávny z dôvodu technických obmedzení. Správny názov je F#
F#
Druh funkcionálny, objektový, multiparadigmatický
Dátum vzniku 2002
Použitie všeobecné
Typová kontrola statická, silná, implicitná
Tvorca Microsoft Research (Don Syme)
Implementácie .NET Framework, Mono
Dialekty 2.0, 3.0
Používané prípony .fs, .fsx, .fsi

F# (vyslovované v angličtine ako F Sharp, /ef ʃɑɹp/, doslova to označuje notu fis) je multiparadigmatický programovací jazyk pre .NET spájajúci funkcionálny prístup s imperatívnym objektovo orientovaným prístupom. Syntax jazyka vychádza z ML a OCaml a ďalej je ovplyvnená jazykmi Haskell a C#. F# je plne podporovaným jazykom pre platformu .NET a je súčasťou Visual Studia 2010. V súčasnej dobe sa o vývoj jazyka stará Microsoft Research.

Ciele jazyka a súhrn vlastností[upraviť | upraviť zdroj]

F# bol vyvinutý ako variant ML s niektorými konštrukciami prevzatými z jazyka OCaml. Narozdiel od mnohých skriptovacích jazykov sa rýchlosťou blíži k C#, (predovšetkým z dôvodu silnej typovej kontroly). Taktiež podporuje mnoho dynamických programovacích techník ako je napríklad reflexia. F# umožňuje prepojenie s ďalšími jazykmi vrátane jednoduchej implementácie DSL a bez problémov spolupracuje so všetkými .NET jazykmi.

Microsoft Research uvádza ako hlavné výhody jazyka tieto:

  • funkcionálny jazyk so stručnou syntaxou a implicitným typovaním
  • možnosť interaktívneho skriptovania (ako v Pythone)
  • kombinácia typovej bezpečnosti a implicitného typovania (ako v ML)
  • výkon na úrovni C#, natívny beh na .NET frameworku
  • prístup ku všetkým .NET knižniciam
  • integrovanosť a plná podpora vo Visual Studiu

F# je silne typový jazyk, ktorý však používa implicitné typovanie (dátový typ premennej sa nemusí špecifikovať explicitne, prekladač ho rozpozná podla priraďovanej hodnoty). Ako jazyk pre .NET podporuje F# všetky typy z .NET frameworku, ale navyše pridáva niekoľko nemenných typov (zmena ich hodnoty je možná iba vytvorením novej kópie) zviazaných so špecifickými vlastnosťami jazyka a používaných predovšetkým pre úlohy funkcionálneho programovania. Týmito typmi sú: tuple, record, discriminated union, list a function. V tejto súvislosti stojí za zmienku že aj typy .NET sú v F# štandardne nemeniteľné, opak sa dá dosiahnuť použitím kľúčového slova mutable.

Dôležitou vlastnosťou jazyka je interaktívne skriptovanie, ktoré umožňuje komponenta F# Interactive. Syntax jazyka sa pre skriptovanie v niektorých detailoch líši.