F Sharp
Tomuto článku alebo sekcii chýbajú odkazy na spoľahlivé zdroje, môže preto obsahovať informácie, ktoré je potrebné ešte overiť. Pomôžte Wikipédii a doplňte do článku citácie, odkazy na spoľahlivé zdroje. |
Správny názov tohto článku je F#. Vynechanie # je spôsobené technickými obmedzeniami. |
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 |
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. Na rozdiel 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.