Haskell Hero
Interaktivní učebnice pro začínající Haskellisty
|
Základní znalostiObecněNásledující řádky neberte jako nutnost k našprtání. Spíš je to jen přehled základních věcí, se kterými další lekce počítají. Pro první přečtení to doporučuju jen tak proletět a pak se sem v případě potřeby vrátit. Case sensitive
Haskellu na velikosti záleží. Je velký rozdíl, jestli Hugsu napíšeme
Rozlišování velkých a malých písmen není pouze nějaká domluva programátorů, ale Hugs se podle nich opravdu řídí. Pokud si necháme vyhodnotit výraz FalseHugs si výraz False přebere jako pravdivostní hodnotu, zjistí, že ta už je sama o sobě nezjednodušitelný výraz a dostaneme opět False jako výsledek.
Pokud bychom napsali falseHugs nám oznámí, že funkci/proměnnou false nezná.
Datové typy a strukturyDatový typ je souhrnné označení hodnot se stejnými vlastnostmi. Více si o typech povíme v kapitole Typy. V naší učebnici budeme pracovat s následujícími datovými typy a strukturami:
Arita funkceArita je vlastnost funkce, která udává, kolik argumentů funkce potřebuje ke svému plnému vyhodnocení.
V krabičkovém modelu označuje arita funkce počet děr na vrchní stěně krabičky. Unární funkce f , binární funkce g a ternární funkce h
if-then-elseV Haskellu máme konstrukciif podminka then splneno else nesplnenokde
Několik důležitých vlastností if-then-else výrazů:
Příklad:
Zkonstruujte výraz, který zjistí, zda je číslo
Jako podmínku zvolíme tedy výraz if even 5 then 'A' else 'N'což se vyhodnotí následovně: if even 5 then 'A' else 'N' ~> if False then 'A' else 'N' ~> 'N' Komentáře
Do zdrojového kódu si můžeme psát i naše poznámky, které bude překladač ignorovat. Zakomentování kódu provedeme napsáním dvou pomlček kód programu -- komentář, který bude při překladu ignorován další překládaný kód programu Mimo psaní poznámek můžeme komentáře použít i pro zamezení překladu kusu kódu. f 0 = 0 -- f 1 = 1 tento řádek jakoby tu nebyl f x = x + 1Toto použití komentářů je obzvláště užitečné při ladění programu. Pokud chceme, aby se nějaký kus kódu nepřekládal, ale nevíme, zda jej nebudeme v budoucnu ještě potřebovat, místo smazání jej pouze zakomentujeme. Jeho znovuzpřístupnění se provede pouhým odstraněním pomlček.
Pokud potřebujeme vytvořit komentář přes více řádků, uzavřeme jej mezi znaky překládaný kód programu {- komentář komentář pořád komentář ještě pořád komentář -} další kód programu |