Professional Documents
Culture Documents
Programski Jezik F PDF
Programski Jezik F PDF
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.
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:
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).
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.
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 _.