Haskell Hero
Interaktivní učebnice pro začínající Haskellisty
|
Práce se skriptemÚvodem
Hugs si při zapnutí načte do paměti definice funkcí a konstant z knihovny Prelude. Tato knihovna mimo jiné obsahuje například definice funkcí Chtěli bychom, aby k těmto definicím Hugs přidal i naše vlastní definice. Při jednorázovém používání můžeme do vyhodnocovaného výrazu vložit lokální definici. Při opakovaném používání těch samých funkcí by bylo nepraktické u každého výskytu naší funkce psát lokální definici. Proto budeme v těchto případech používat globální definice uložené ve skriptu. Vytváříme skript
Pod názvem skript si nepředstavujte nic složitého. Haskellovský skript je klasický textový soubor s příponou
Ve Windows otevřeme libovolný textový editor (např. poznámkový blok) a v menu Soubor zvolíme Uložit jako.... Jako název souboru můžeme napsat cokoli s příponou
Na linuxu otevřeme v terminálu libovolný textový editor. Zde si ukážeme základní práci s editorem Tímto máme vytvořený prázdný skript, můžeme jej nahrát do Hugsu a poté se pustit do jeho editace. Nahráváme skript do HugsuVe WinHugsu máme dvě možnosti, jak skript do Hugsu nahrát.
V linuxu nahrajeme soubor
Editujeme skript
Skript budeme upravovat v textovém editoru. Ten spustíme klasickým spuštěním textového editoru a otevřením skriptu jako textového souboru. Pokud již máme skript nahrán v Hugsu, můžeme jeho editaci vyvolat povelem
Ještě nám zbývá říct Hugsu, aby změněný soubor znovu načetl. To můžeme udělat buďto povelem OdsazováníPokud píšeme nějaký skript s dlouhými řádky, je často přehlednější řádky zalomit. Jak to ale udělat, aby Hugs pochopil, že nový řádek není nový řádek, ale pokračování toho předešlého? Jednoduše. Na začátek nového řádku přidáme alespoň jednu mezeru. Toto je první řádek. Toto je druhý řádek a toto je pokračování druhého řádku.
Mezera na začátku nemusí být pouze jedna. Může jich být libovolný počet, ale řádek navazující musí být odsazený víc, než řádek navazovaný. Dobré přehlednosti se dá dosáhnout u výrazu if even 5 then "Ano" else "Ne" Takto se dá zanořovat i vícenásobně. Například při použití vnořené podmínky. if even 5 then "Ano" else if 7 < 9 then "Ano" else "Ne"
V tomto případě se nejdříve vyhodnotí podmínka if 7 < 9 then "Ano" else "Ne"
Dále se podmínka |