Korrutistüüp

tüüpide korrutamise tulemus tüübiteoorias

Programmeerimiskeeltes ja tüübiteoorias on tüüpide korrutamise tulemuseks uus struktuurne tüüp. Sellise korrutustehte muutujad on tüübid ning korrutistüübi struktuuri määrab ära muutujate järjekord tehtes. Instants korrutustüübist säilitab tüüpide järjekorra, aga võib muidu sisaldada kõiki võimalikke väärtusi tüüpidest, millest ta koosneb. Korrutistüübi instantsi avaldis on ennik ning sellise avaldise tüüp on "enniku tüüpi" (ingl. tuple type). Tüüpide korrutis on kahe või enama tüübi otsekorrutis. Ühiktüüp on mitte ühegi tüübiga hulga korrutis.

Programmeerimiskeeltes on levinud kahte sorti korrutistüüpe:

  • Ennik (ingl. tuple) – nimetute komponentidega.
  • Kirje (ingl. record või struct) – nimega komponentidega.

Ühe konstruktoriga algebraline andmetüüp on isomorfne korrutistüübiga. Curry-Howardi vastavuse järgi vastavad korrutustüübid loogikas konjunktsiooniga. Korrutistüüpidel on vastavussuhe summatüüpidega.

Programmeerimiskeeltes muuda

Paljudel funktsionaalsetel programmeerimiskeeltel on algeline mõiste korrutistüübist. Näiteks korrutis tüübile tüüp1, ..., tüüpn kirjutatakse type1*...*typen ML keeles ja (type1,...,typen) Haskellis. Tärni * kasutatakse ML-i keeltes viitamaks sellele, et tegemist on korrutustehtega.[1]

Imperatiivsete keelte hulgas on ennikud sisseehitatud näiteks Pythoni keelde,[2] kus neil on Haskelliga sarnane vorm:

ennik = (42, "Tere Maailm", True, None)

Kirjed on saadaval paljudes programmeerimiskeeltes. Näiteks võib C++is[3] olla lihtne kirjetüüp selline:

struct isik {
    int id;
    int vanus;
    std::string nimi;
};

Viited muuda

  1. Borretti, Fernando (30. aprill 2023). "Two Years of OCaml". Fernando Borretti (inglise). Vaadatud 10. detsembril 2023.
  2. "Built-in Types". Python documentation. Vaadatud 10. detsembril 2023.
  3. "C++ Records (structs)". jcsites.juniata.edu. Vaadatud 10. detsembril 2023.

Välislingid muuda