Domáca úloha 5
Zdrojový kód programu môže vyzerať aj dosť inak ako ste zvyknutý.
Napíšte v Clojure miniknižnicu funkcií na prácu s permutáciami, ktorá obsahuje nasledujúce funkcie:
- vytvorenie permutácie z listu (napríklad z listu '(2 1 3) vytvoríme permutáciu, kde 1->2, 2->1, 3->3); funkcia môže byť identita ak sa rozhodnete ukladať permutáciu ako list.
- vytvorenie listu z permutácie
- aplikovanie permutácie na číslo
- skladanie permutácií
- Bonus: určenie rádu permutácie
- Bonus 2: vyhľadávanie podpermutácie v permutácii (definǐcia podpermutácie).
Príklad '(3 2 4 1) zadané ako list je podpermutáciou '(1 9 6 7 3 4 5 8 2) a nachádza sa na podčiarknutých miestach
Spôsob ako reprezentovať permutáciu si môžete vybrať. Funkcie nemusia byť efektívne. Môžete použiť online interpreter, napr.
http://clojurescript.net/. Pokúste sa napísať kód pekne = v súlade s konvenciami. Očakáva sa, že budete veľa googliť.