Prolog

1)	Naprogramujte součin řídkých polynomů reprezentovaných jako seznam dvojic prv(Koef, Exp) uspořádaný podle složky Exp, kde Koef je nenulový koeficient u exponentu Exp. Nezapomeňte nějak vhodně reprezentovat nulový polynom.  

2)	Naprogramujte predikát realizující algoritmus quicksortu (nesmíte použít zřetězení seznamů).

Haskell

Typ String je definován takto : type  String = [ Char ]. 
Kromě zápisu [‘a’,’n’,’n’,’a’] můžeme ekvivalentně psát i „anna“

3)	Naprogramujte funkci, která dostane jako vstup String Doc (který pro jednoduchost může obsahovat jen malá písmena anglické abecedy, znak \n a znak mezera) a číslo N a vyrobí z něj „abecední index výskytu slov délky alespoň N na řádcích“ dokumentu Doc, tj. provede s ním následující operace (budeme je demonstrovat na příkladě):
Doc   = =  „jak_kul__husar\nluk\nstal_jak\n\nkul_v_ plote\nuz_jsem_zase_v_tom“
N == 3
a)	Rozdělí vstupní String Doc na posloupnost řádek (Stringů) Lines
(řádky jsou odděleny znakem \n)
[„jak_kul_husar“ , „luk“, „stal_jak“, [] , „kul_v_ plote“, „uz_jsem_zase_v_tom“)
b)	řádky v seznamu Lines „očísluje“ – výstupem bude tedy seznam dvojic (cisloradky,radka)
[ (1,“jak_kul_husar“) , (2,“luk“), (3,“stal_jak“), (4,““) ,
  (5,“kul_v_ plote“), (6,“uz_jsem_zase_v_tom“) ]
c)	rozdělí každou řádku na slova – vydá seznam dvojic (cisloradky,slovo)
[ (1,“jak“), (1,“kul“), (1,“husar“) , (2,“luk“), (3,“stal“), (3,“jak“), 
  (5,“kul“), (5,“v“), (5,“plote“), (6,“uz“), (6,“jsem“), (6,“zase“), (6,“v“), (6,“tom“)]
d)	uspořádá tento seznam podle druhé složky - slova
[(1,“husar“), (1,“jak“), (3,“jak“), (6,“jsem“), (1,“kul“), (5,“kul“), (2,“luk“), (5,“plote“), (3,“stal“), (6,“tom“), (6,“uz“), (5,“v“), (6,“v“), (6,“zase“)]
e)	přepracuje vstupní seznam na seznam dvojic (slovo,SeznamCiselRadkuNaKterychSeTotoSlovoVyskytuje)
[(„husar“,[1]), („jak“,[1,3]), („jsem“,[6]), („kul“[1,5]), („luk“,[2]), („plote“,[5]), („stal“,[3]), („tom“,[6]), („uz“,[6]), („v“,[5,6]), („zase“,[6]) ]
f)	vypustí slova kratší než vstupní parametr N (v příkladě 3)
[(„husar“,[1]), („jak“,[1,3]), („jsem“,[6]), („kul“[1,5]), („luk“,[2]), („plote“,[5]), („stal“,[3]), („tom“,[6]), („zase“,[6]) ]