Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: desprit 26. 06. 2017, 18:19:08
-
Může mi někdo vysvětlit následující citát od Knutha, pls? "At an abstract enough level of implementation, generic OOP and functional approaches to programming are one and the same thing. [...] Let's take any language, say, C++. There's a natural transformation from, for instance, Optional<T> to Set<T> and so we can, by and large, work with quotients of types and ignore their actual shape and structure, which provides a great pathway to automatic optimisation and semantic verification [...] We also obtain an almost optimal type system, devising which would be close to impossible otherwise. [...] so what we arrive at in the end is a bijection between a subset of C++ and a purely functional language."
Nechápu, co je "natural transformation" a jak by měla vypadat. Celé mi to vůbec přijde dost divně napsané. Jde to říct i jinak nebo to je fakt tak složité?
-
Tym sa nezaoberaj, v zivote to potrebovat nebudes, v praxi detto.
-
Tym sa nezaoberaj, v zivote to potrebovat nebudes, v praxi detto.
Ale u zkoušky jo...
-
Tym sa nezaoberaj, v zivote to potrebovat nebudes, v praxi detto.
Ale u zkoušky jo...
U zkoušky řekni, že tomu rozumí jen experti tady na rootu.
-
Může mi někdo vysvětlit následující citát od Knutha, pls? "At an abstract enough level of implementation, generic OOP and functional approaches to programming are one and the same thing. [...] Let's take any language, say, C++. There's a natural transformation from, for instance, Optional<T> to Set<T> and so we can, by and large, work with quotients of types and ignore their actual shape and structure, which provides a great pathway to automatic optimisation and semantic verification [...] We also obtain an almost optimal type system, devising which would be close to impossible otherwise. [...] so what we arrive at in the end is a bijection between a subset of C++ and a purely functional language."
Nechápu, co je "natural transformation" a jak by měla vypadat. Celé mi to vůbec přijde dost divně napsané. Jde to říct i jinak nebo to je fakt tak složité?
int i = 10
int j = 10
int k = i + j
a přirozená transformace
suma(int(10), int(10))
po transformaci nemůžete rozhodnout, zda jde o volání funkcí, či volání konstruktorů objektů.
-
Nevim, neumim to vysvetlit. Doporucuji se zeptat primo vyucujiciho (Knutha?), jestli je to na zkousku. :-)
Ale je fakt, ze mezi OOP a FP existuje cela rada dualit a analogii. Co mi neni jasne, kterou z nich ma konkretne ten citat na mysli.
-
Nechápu, co je "natural transformation" a jak by měla vypadat. Celé mi to vůbec přijde dost divně napsané. Jde to říct i jinak nebo to je fakt tak složité?
že se dá z optional udělat set aniž by se něco důležitého ztratilo, naopak už to tak dobře nejde
-
Nevim, neumim to vysvetlit. Doporucuji se zeptat primo vyucujiciho (Knutha?), jestli je to na zkousku. :-)
Ale je fakt, ze mezi OOP a FP existuje cela rada dualit a analogii. Co mi neni jasne, kterou z nich ma konkretne ten citat na mysli.
Jde o převod z maybe na singleton. Relevantní článek je General theory of natural equivalences, tam to je vše jak na talíři.
-
Jde o převod z maybe na singleton.
to asi ne, ne? ve wikipedii píšou, že singleton je množina o jednom prvku
-
to asi ne, ne? ve wikipedii píšou, že singleton je množina o jednom prvku
Singleton (Just x) nebo prázdné pole (Nothing).
-
to asi ne, ne? ve wikipedii píšou, že singleton je množina o jednom prvku
Singleton (Just x) nebo prázdné pole (Nothing).
no právě
-
Kit Vam odpovi :D
-
Jde o převod z maybe na singleton.
to asi ne, ne? ve wikipedii píšou, že singleton je množina o jednom prvku
Přesně, právě proto.
-
Jde o převod z maybe na singleton.
to asi ne, ne? ve wikipedii píšou, že singleton je množina o jednom prvku
Přesně, právě proto.
viz Prýmek, jak z Nothing udělám množinu o jednom prvku?
-
Jde o převod z maybe na singleton.
to asi ne, ne? ve wikipedii píšou, že singleton je množina o jednom prvku
Přesně, právě proto.
viz Prýmek, jak z Nothing udělám množinu o jednom prvku?
No a není Nothingness sama o sobě singletonem? Minimálně na ní lze uplatnit operaci "and" s Being, ne snad?
-
Jde o převod z maybe na singleton.
to asi ne, ne? ve wikipedii píšou, že singleton je množina o jednom prvku
Přesně, právě proto.
viz Prýmek, jak z Nothing udělám množinu o jednom prvku?
K tomu slouží prázdná množina.
-
Jde o převod z maybe na singleton.
to asi ne, ne? ve wikipedii píšou, že singleton je množina o jednom prvku
Přesně, právě proto.
viz Prýmek, jak z Nothing udělám množinu o jednom prvku?
No a není Nothingness sama o sobě singletonem?
Tak to nefunguje, to se prostě mapuje na prázdnou množinu, jinak by to nebyla přirozená transformace, takže by nefungovaly monády a celé by to tedy bylo dost k ničemu.
-
Jde to říct i jinak nebo to je fakt tak složité?
Nejde, je to složité.