reklama

Algebraické typy v C++

phulas

Algebraické typy v C++
« kdy: 17. 07. 2017, 16:42:54 »
Ahoj, potřebuji součtový typ, ale včetně RAII pro třídy, takže nemůžu použít union, jaký způsob byste doporučili jako nejefektivnější? (Ze zřejmých důvodů se mi moc nechce používat RTTI.)

reklama


lopata


zboj

  • *****
  • 1 506
    • Zobrazit profil
    • E-mail
Re:Algebraické typy v C++
« Odpověď #2 kdy: 17. 07. 2017, 21:55:26 »

x14

  • ***
  • 111
    • Zobrazit profil
    • E-mail
Re:Algebraické typy v C++
« Odpověď #3 kdy: 18. 07. 2017, 12:44:08 »
Co je to součtový typ?

lopata

Re:Algebraické typy v C++
« Odpověď #4 kdy: 18. 07. 2017, 12:56:49 »


Re:Algebraické typy v C++
« Odpověď #5 kdy: 18. 07. 2017, 13:00:02 »
Co je to součtový typ?

Tohle je klasicky priklad:

data List a = Nil | Cons a (List a)

(Typ "Seznam polozek libovolneho typu a" je bud Nil nebo zretezeni polozky typu a  seznamu polozek typu a. To svislitko muzes chapat jako sjednoceni variant.)

Typ se sklada z nekolika variant. Muzes uvazovat o otevrene variante, ale vetsinou se takhle mluvi o uzavrene variante (ty varianty jsou vyjmenovane predem a nemuzes si nejakou pridat v klientskem kodu).


Hezke uvodni cteni pro jeden konkretni jazyk najdes trebas v: http://haskellbook.com/

x14

  • ***
  • 111
    • Zobrazit profil
    • E-mail
Re:Algebraické typy v C++
« Odpověď #6 kdy: 18. 07. 2017, 13:31:25 »
Kdyby tam padlo to slovo nějaká unie nebo variantní typ, tak mi to asi dojde, ale takhle  ;D
V každém případě díky!
Každý den se člověk učí.

Re:Algebraické typy v C++
« Odpověď #7 kdy: 18. 07. 2017, 14:26:32 »
Kdyby tam padlo to slovo nějaká unie
Jo, a pak tady zase bude pět stránek na téma tyranie Bruselu...


Re:Algebraické typy v C++
« Odpověď #8 kdy: 18. 07. 2017, 14:32:29 »
Kdyby tam padlo to slovo nějaká unie
Jo, a pak tady zase bude pět stránek na téma tyranie Bruselu...

To si nepomuzes, "algebra" je zase muslimska infiltrace :-D

zboj

  • *****
  • 1 506
    • Zobrazit profil
    • E-mail
Re:Algebraické typy v C++
« Odpověď #9 kdy: 18. 07. 2017, 15:03:39 »
Kdyby tam padlo to slovo nějaká unie
Jo, a pak tady zase bude pět stránek na téma tyranie Bruselu...
Jo, a svaz (type lattice) evokuje CCCP...

UF

Re:Algebraické typy v C++
« Odpověď #10 kdy: 18. 07. 2017, 15:30:43 »
Každý den se člověk učí.
to je ale optimismus!

kimec

Re:Algebraické typy v C++
« Odpověď #11 kdy: 19. 07. 2017, 02:33:18 »
Kdyby tam padlo to slovo nějaká unie
Jo, a pak tady zase bude pět stránek na téma tyranie Bruselu...
Jo, a svaz (type lattice) evokuje CCCP...
Unia je svaz - teda aspon ta europska. Len sa preferuje modernejsi nazov unia, aby sa u obyvatelstva V4 neprebudzal negativny sentiment asociovany s CCCP. Pekna instancia newspeaku v praxy.

Re:Algebraické typy v C++
« Odpověď #12 kdy: 19. 07. 2017, 10:41:51 »
Kdyby tam padlo to slovo nějaká unie
Jo, a pak tady zase bude pět stránek na téma tyranie Bruselu...
Jo, a svaz (type lattice) evokuje CCCP...
Unia je svaz - teda aspon ta europska. Len sa preferuje modernejsi nazov unia, aby sa u obyvatelstva V4 neprebudzal negativny sentiment asociovany s CCCP. Pekna instancia newspeaku v praxy.

No dalo se cekat, ze se toho nakonec nekdo chyti... Posluz si a pokracuj s tou algebrou.

Aoidhghean

Re:Algebraické typy v C++
« Odpověď #13 kdy: 06. 08. 2017, 21:09:07 »
Co je to součtový typ?
To je snad základ z prvního ročníku, ne? V matice je to disjoint union.

 

reklama