You are on page 1of 8

Uvod

F# je programski jezik, razvijen na .NET platformi, sa izraenim funkcionalnim karakteristikama koji


podrava i druge paradigme programiranja poput imperativne i objektno-orijentisane.

Imperativno programiranje je termin koji se u literaturi esto koristi za programiranje u


programskim jezicma poput C-a ili Pascal-a.

Autor F#-a je Don Syme, istraiva zaposlen u okviru Microsoft Research centra u Kembridu.

Snaga F#-a lei u svedenoj sintaksi koja omogudava laku itljivost koda, kao i efikasan razvoj programa
koje zahtevaju primenu sloenih matematikih algoritama. Jezik omogudava brzo generisanje
prototipova i njihovu brzu transformaciju u produkcioni kod. Kod napisan u F#-u lako se moe
paralelizovati, to je posebno znaajno danas kada svi novi kompijuteri imaju vie jezgara. Koridenjem
F#-a kao osnovnog jezika mogu se lako kreirati domensko specifini jezici (DSL) to ga ini posebno
pogodnim za nauno-istraivaku primenu.

F# je kompatibilan sa svim ostalim .NET jezicima. To znai da F# program moe da koristi sve .NET
biblioteke. Biblioteka napisana u F#-u moe se koristiti u bilo kojoj desktop ili Web aplikaciji razvijenoj na
.NET platformi.

Instalacija
Da bi ste programirali u F#-u i provebali primere koji su prikazani u ovoj skripti potrebno je da imate
instaliran F# kompajler i interpreter.

Ukoliko imate instaliranu neku od verzija Visual Studio-a 2010 (u vreme pisanja ovog teksta dostupan
kao Beta 2 verzija), nije potrebna nikakva dodatna instalacija. U suprotnom, moete pronadi link za
preuzimanje aktuelne verzije F#-a na web adresi http://msdn.microsoft.com/en-us/fsharp/default.aspx.

Preporuka autora je da po izlasku zvanine verzije Visual Studio-a 2010 preuzmete njegovu
besplatnu ediciju i koristite je za programiranje u F#-u.

Sama instalacija se obavlja jednostavno, pokretanjem instalacionog paketa ( Next,Next, ... Finish) pri
emu nikakva specifina podeavanja nisu potrebna.

Vebanje kroz primere


Koncept ove skripte je vebanje kroz primere. Vedina primera je napravljena tako da se mogu izvriti u
F# konzoli.

VS2010
Ukoliko imate Visual Studio 2010, F# konzolu moete pokrenuti iz Start menija kao to je prikazano na
slici:
Kada se konzola pokrene potrebno je da otkucate fsi i pritisnete taster Enter da bi pokrenuli F#
interpreter. Kako bi testirali da li F# interpreter radi otkucajte printfn Hello World;;. Dobidete prikaz
kao na slededoj slici:

Instalacija F#-a bez Visual Studio-a


Ukoliko instalirate F# kompajler nezavisno od Visual Studio-a imadete u okviru Start menija Microsoft F#
grupu i u okviru nje opciju F# Interactive (Console).
Izaberite ovu opciju i na ekranu de se prikazati konzola. Da bi ste testirali da li F# interpreter radi
otkucajte printfn Hello World;;. Dobidete prikaz kao na slededoj slici:
Osnovne naredbe

Naredba povezivanja let


Naredba let je najznaajnija i najede koridena naredba u F#-u. Slui da povee identifikatore sa
vrednostima. Slededi primer ilustruje upotrebu ove naredbe.

Kao to moete da uoite naredba let ima formu: let ident = expr, gde je ident identifikator (u ovom
sluaju a), dok je expr izraz ( u ovom sluaju vrednost 21).

Treba uoiti da je F# interpretatora automatski odredio da je vrednost povezana sa identifikatorom a


celobrojna ( int ). Ova funkcionalnost F# interpretatora naziva se inferencija tipa.

Druga stvar koju ste moda uoili je upotreba rei identifikator za simbol a, umesto moda oekivane
rei promenljiva. Razlog za to je to se simboli u F# podrazumevano dodeljuju vremenski nepromenljivim
(eng. immutable) vrednostima. Ukoliko pomodu naredbe let poveemo identifikator a sa nekom
drugom vrednodu, nede se promeniti sadraj memorijske lokacije prethodno povezane sa
identifikatorom a, ved de identifikator a biti povezan sa drugom memorijskom lokacijom.

Da bi to ilustrovali povezademo identifikator a sa promenljivom tipa znak.


Pored celobrojnog i znakovnog u F# moemo koristiti i vrednosti osnovnih tipova poput realnog broja
(float), niske znakova (string) i logikog (bool).

Funkcija kao tip podataka


Funkcije su u F#-u samo jedan od tipova podataka kao to je to sluaj sa celobrojnim ili znakovnim
tipovima. ta vie moemo definisati i vrednost funkcijskog tipa, funkcijski literal.
Svaki funkcijski literal ima svoj tip, koji interpreter automatski utvruje kao to je to sluaj i kod ostalih
tipova. Funkcijski literal (fun x-> x*x) ima tip int->int to oznaava da predstavlja funkciju koja
preslikava skup celih brojeva na skup celih brojeva.

Kako se odvija ovo automatsko utvrivanje? Interpreter polazi od naredbe x*x, i predpostavlja
da je operator mnoenja definisan nad skupom celih brojeva. Prema tome x je ceo broj, a samim
tim i rezultat funkcije.

Naredba povezivanja funkcijske vrednosti sa identifikatorom ima i svoju kradu, prirodniju, formu.

Ukoliko nismo zadovoljni tipom funkcije koji je interpreter automatski odredio, moemo mu dati
sugestiju (eng. compiler hint). U primeru koji sledi ova sugestija je namerno data u sredini izraza kako je
italac ne bi pomeao sa definisanjem liste parametara.
Tip podataka n-torka
n-torka (eng. tuple) je najjednostavniji i najede korideni od svih sloenih tipova podataka. Koristimo ga
kada elimo da koristimo ureeni skup vrednosti, a da pri tome eksplicitno ne definiemo tip.

Slededi primer prikazuje povezivanje ureenog para gde je prvi lan tipa string, a drugi tipa int sa
identifikatorom s.

Ureene parove moemo vezati i za vie identifikatora, pri emu se identifikatori vezuju za vrednosti
prema poziciji. Ukoliko neku od vrednosti iz ureenog para ne elimo da veemo za neki identifikator,
umesto identifikatora stavljamo simbol _.

Navedeni oblici let naredbe ilustrovani su slededim primerom.

You might also like