Cesta, krok 4
Zadáno v úterý 25. 5.
K odevzdání v pondělí 31. 5.
(na následující dvě úlohy samozřejmě nepoužívejte existující isPrefixOf
a elemIndex
funkce)
- Napište si svou vlastní verzi
isPrefixOf
. Co přesně tato funkce dělá najděte na Hoogle, na hackage, nebo v textu kapitoly 7. - Napište si svou vlastní verzi
elemIndex
. Co přesně tato funkce dělá najděte na Hoogle, na hackage, nebo v textu kapitoly 7. - Napište funkci
grep
, která dostane několik řádků textu ("kupku sena") a nějaký text ("jehlu") a má vrátit očíslovaný seznam všech řádků, na kterých se jehla nachází. Použijte funkce zData.List
a nepište si všechno sami, abyste si ušetřili práci (zvláště na vyhledávání věcí ve stringu).
> text = "řádek 1\nTohle je na řádku 2\na zde vidíme řádek 3" > grep text "řádek" [(0, "řádek 1"), (2, "A zde vidíme řádek 3")] > grep text "na" [(1, "Tohle je na řádku 2")] > grep text "d" [(0, "řádek 1"), (1, "Tohle je na řádku 2"), (2, "A zde vidíme řádek 3")]
- Napište si svůj vlastní modul
Caesar
, který bude implementovat Caesarovu šifru. Pokud si nepamatujete, jak přesně funfuje, najděte je na netu. Z tohoto modulu exportuje pouze funkcecode
adecode
, zbytek "pomocných" funkcí nechte schovaný. Pro samotné kódování jednotlivých písmen se budou hodit funkce zData.Char
. Sami vymyslete, jak by si měly funkcecode
adecode
poradit s interpunkcí.