V 1. dílu našeho seriálu pozdravíme svět a podíváme se na práci s F# Interactive.
V minulém dílu seriálu jsme si řekli něco o jazyce F# a nainstalovali jsme kompilátor s nástroji. Tím máme vše potřebné pro to, abychom mohli začít programovat. S chutí do toho!
První program
Jelikož balíček F# máme hezky nainstalován, pustíme se do tvorby první aplikace, abychom si ukázali, jak to vlastně funguje. Jak jsem již zmínil v úvodním dílu seriálu, demonstrovat aplikace budu v integrovaném vývojovém prostředí Visual Studio 2008.
Ze všeho nejdříve si spustíme Visual Studio. Po načtení hlavní obrazovky vybereme z menu File → New → Project
, čímž vyvoláme okno založení nového projektu. V něm rozbalíme nabídku Other project types
a v ní zvolíme F# Projects. Zadáme ještě jméno projektu (já jsem zvolil obligátní Ahoj_Svete) a klepneme na tlačítko OK.
Tím jsme vytvořili nový projekt F#. Všimněte si, že projekt je prázdný a neobsahuje žádný implicitně vytvářený zdrojový soubor. Ten musíme přidat sami. Proto svou pozornost nyní přesuneme do okýnka Solution Exploreru, kde klepneme pravým tlačítkem myši na ikonu projektu Ahoj_Svete a z kontextové nabídky, která se nám otevře, vybereme Add → New Item
. Otevře se nám dialog pro přidání nového prvku aplikace. Vybereme F# Source File a klepneme na tlačítko OK.
Vytvořil se nám nový soubor, který obsahuje sample zdrojový kód. Ten my potřebovat nebudeme, proto celý obsah ručně smažeme (bohužel, VS nám defaultně neumožňuje vytvořit úplně prázdný soubor F#). Do čistého souboru pak napíšeme tento zdrojový kód:
printfn "Ahoj světe";;
open System; //otevře jmenný prostor System, abychom mohli používat .NET funkce pro práci s konzolí
Console.ReadKey(true) //program počká, než uživatel stiskne klávesu
Zkompilujeme a spustíme tento zdroják. Pokud jste se řídili správným postupem, dostaví se kýžený výsledek – aplikace vám do konzole vypíše řetězec „Ahoj světe“. Tím můžete být na sebe právem hrdí, je to váš první program v F#.
Abych zkompletoval ukázku nejjednodušší aplikace v F#, ukážeme si další způsob vypsání řetězce „Ahoj Světe“. Zde vám proto předkládám upravený zdrojový kód:
do print_endline "Ahoj světe" ;; //funkce pro zobrazení řetězce a ukončení řádku, ještě můžete vyzkoušet toto: do printf "Ahoj světe\n";
open System;
Console.ReadKey(true)
Zde máme klíčové slovíčko do, které nám uvozuje volání funkce print_endline, řetězec "Ahoj světe"
máme jako argument (všimněte si, že stejně jako v předchozím příkladě není řetězec oddělen závorkami, o tomto více později) a celé je to ukončeno dvěma středníky – ty oddělují konec příkazu (pokud máme jednu jedinou funkci, tak ani nejsou povinné). Od jejich použití se lze osvobodit tzv. Lightweight syntaxí, která se aktivuje direktivou #light, což si ukážeme zde:
#light
printfn "Ahoj světe - 1. řádek"
printfn "Ahoj světe - 2. řádek"
open System;
Console.ReadKey(true)
Tímto máme „naprogramovánu“ a objasněnu naši první aplikaci v F#.
F# Interactive
Nyní vám představím velice zajímavou součást distribuce F#, a tou je interaktivní konzole F# Interactive.
Tento nástroj slouží k rychlému přehledu např. typů proměnných (v F# se totiž typuje automaticky – ale o tom více příště) sloužících jako argument či výstup funkce atd. To nás zatím nezajímá, F# Interactive však budeme potřebovat v dalších dílech seriálu. Pojďme se podívat na to, jak se s tímto užitečným nástrojem pracuje, abyste to dostali do krve a v budoucnu jsme se nemuseli zdržovat zbytečným vysvětlováním.
Abychom F# Interactive mohli používat, musíme jej nejprve zapnout. To uděláme tak, že v menu vybereme Tools → Add-in Manager
a tam zaškrtneme položku F# Interactive for Visual Studio.
A nyní můžeme spatřit okno F# Interactive integrované do prostředí Visual Studia. Po spuštění vypadá nějak takto:
Už na první pohled je jasné, že jde o něco podobného jako příkazový řádek. Do jisté míry je to tak, s F# Interactive se totiž pracuje téměř stejně. Pojďme si to zkusit.
V předchozí části článku jsme si naprogramovali svou vlastní „Ahoj Světe“ aplikaci. Kurzorem si označíme celý řádek s kódem:
printfn "Ahoj světe";;
Teď stiskneme kombinaci kláves Alt + Enter. Zaměřme svou pozornost na okénko F# Interactive. Po malé chvilce čekání se nám v konzoli zobrazí:
> Ahoj světe
val it : unit = ()
> >
Vidíme, že se nám do konzole vypsal požadovaný řetězec – provedla se funkce printfn. Ovšem co je to za divný text o řádek níže, nic takového už jsme přeci vypsat nechtěli? Žádnou paniku, to je výsledek jedné z hlavních vlastností F# Interactive.
Klíčové slovo val, které je zkratkou anglického slovíčka value (česky hodnota), nám označuje vypsání typu a hodnoty proměnné s názvem it (což je v tomto případě pomocná proměnná, tuto proměnnou F# implicitně vytváří, pokud chceme vyjádřit např. nějakou abstraktní hodnotu, kterou nemáme nikde uloženou). Syntaxe je následující:
val {název proměnné} : {datový typ proměnné} = {hodnota proměnné}
V našem příkladu je zjevné, že hodnota proměnné it je typu unit
(což je prázdný datový typ, analogie typu void z C, C++ nebo C# – o tom ale více až v dalších dílech kurzu) a má prázdnou hodnotu (vyjádřenou dvěma závorkami). To je dáno tím, že nedošlo k uložení žádných dat do proměnné it a text se vypsal rovnou na obrazovku. Informace o proměnné it se nám zobrazily pouze za účelem přehledu programátora o jejím aktuálním stavu (což se může hodit při větším úseku kódu).
Jak jste se přesvědčili, F# Interactive je velmi užitečný nástroj, který v budoucnu jistě velice oceníte.
Závěr
V dnešním dílu našeho seriálu jsme naprogramovali jednoduchou aplikaci – pozdravili jsme svět a naučili se používat vymoženost jménem F# Interactive. Příště si povíme něco o proměnných, naučíme se s nimi pracovat a rozeznávat jejich typy.