/ / Aký je vlastný názov metódy typu zip, ktorá „otočí“ zoznam zoznamov? - funkcionálne programovanie

Aký je vlastný názov zip-ako metóda, ktorá "otočí" zoznam zoznamov? - funkčné programovanie

Vzhľadom na zoznam zoznamov, ako napr ((a b c d) (e f g h) (i j k l) (m n o p) (q r s t)), I "d chcel by som napísať transformáciu na nový zoznam zoznamov skladajúcich sa z prvej položky z každého zoznamu, nasledoval druhú položku z každého zoznamu atď. (V mojom príklade by to malo za následok ((a e i m q) (b f j n r) (c g k o s) (d h l p t))).

Má táto operácia odlišný názov, okrem zip? Ak áno, aké je to meno?

odpovede:

7 pre odpoveď č. 1

Je to asi najlepšie slovo transponovať.

Váš zoznam zoznamov možno považovať za maticu, čo je maticová transpozícia.


6 pre odpoveď č. 2

Táto funkcia sa nazýva Haskell transponovať.


4 pre odpoveď č. 3

Pre podobné otázky sa zvyčajne obraciam na spoločnosť Hoogle kvôli inšpirácii. Akonáhle sme rozdelili typ podpisu pre vašu funkciu, Hoogle hovorí, že haskell používa oboje transponovať a sekvencie vykonať túto transformáciu (aj keď budete musieť trochu šilhať, aby ste si všimli, že to znamená to isté pre zoznam monad).

Transpozícia sa zdá byť lepšia ako konkrétna operácia zoznamu, ale sekvencia má veľký význam pri práci s inými monádami.