A.3. Další funkce nad seznamy

Obsah

A.3.1. Obrácení seznamu - funkce reverse
A.3.2. Spojeni seznamů pomocí funkce - funkce zipWith
A.3.3. Skalární součin vektorů čísel
A.3.4. Kartézský součin

A.3.1. Obrácení seznamu - funkce reverse

Vytvořte funkci, která k zadanému seznamu vytvoří nový seznam, obsahující prvky původního seznamu v obráceném pořadí. Pokuste se najít více možností, jak tuto úlohu řešit, určete a testy ověřte, jaká je časová a prostorová složitost nalezených řešení.

A.3.2. Spojeni seznamů pomocí funkce - funkce zipWith

Vytvořte funkci, která spojí stejnolehlé prvky dvou seznamů do jednoho seznamu tak, že s nimi provede zadanou binární operaci. Ukažte, jak se pomocí této funkce dá implementovat funkce zip z prvního cvičení.

A.3.3. Skalární součin vektorů čísel

Vytvořte funkci, která vypočte skalární součin dvou číselných vektorů. Najděte řešení pomocí rekurzivních funkcí a potom se pokuste tuto funkci implementovat pouze kombinací již dříve vytvořených funkcí.

A.3.4. Kartézský součin

Použijte seznam jako reprezentaci konečné množiny prvků. Vytvořte funkci, která vypočte kartézský součin dvou množin (obecně různého typu). Najděte řešení pomocí rekurzivních funkcí a potom se pokuste tuto funkci implementovat pomocí generátorů seznamů. Je zajištěno, že výsledné řešení opět reprezentuje množinu (tj. že se prvky výsledného seznamu neopakují)?