Přirozená transformace: Porovnání verzí

Smazaný obsah Přidaný obsah
nějaké takové základní rozšíření
→‎Funkcionální programování: aplikace komutativnosti
Řádek 32:
==Funkcionální programování==
 
Ve [[funkcionální programování|funkcionálním programování]] odpovídají funktorům (přesněji [[endofunktor]]ům v kategorii typů daného [[programovací jazyk|programovacího jazyka]] a funkcí mezi nimi) [[generické programování|generické typy]], které poskytují operaci ''fmap'' mapující funkce na funkce. Přirozenou transformací pak je generická funkce mapující dva generické typy mezi sebou. Pokud například existují generické typy <code>List<T></code> a <code>Set<T></code>, odpovídá přirozené transformaci generická funkce <code>List<T> → Set<T></code>. Podmínka komutativnosti přirozené transformace pak znamená, že dvě možnosti, jak provést konverzi např. z <code>List<int></code> na <code>Set<string></code> (buď nejprve zkonvertovat <code>List<int></code> na <code>List<string></code> pomocí ''fmap'' a následně zkonvertovat <code>List<string></code> na <code>Set<string></code> pomocí generické funkce pro transformaci, anebo naopak nejprve ztransformovat <code>List<int></code> na <code>Set<int></code> a poté aplikovat ''fmap'' pro konverzi <code>Set<int></code> na <code>Set<string></code>) musí dát stejný výsledek.
 
Přirozené transformace jsou také nedílnou součástí definice [[monáda (endofunktor)|monád]] a [[monadický operátor|monadických operátorů]].