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.
Citace od: kabat kdy 26. 06. 2017, 18:22:52
Tym sa nezaoberaj, v zivote to potrebovat nebudes, v praxi detto.
Ale u zkoušky jo...
Citace od: desprit kdy 26. 06. 2017, 18:34:09
Citace od: kabat kdy 26. 06. 2017, 18:22:52
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.
Citace od: desprit kdy 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é?
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.
Citace od: desprit kdy 26. 06. 2017, 18:19:08
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
Citace od: JS kdy 26. 06. 2017, 20:10:20
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.
Citace od: zboj kdy 26. 06. 2017, 20:45:54
Jde o převod z maybe na singleton.
to asi ne, ne? ve wikipedii píšou, že singleton je množina o jednom prvku
Citace od: v kdy 26. 06. 2017, 21:34:38
to asi ne, ne? ve wikipedii píšou, že singleton je množina o jednom prvku
Singleton (Just x) nebo prázdné pole (Nothing).
Citace od: Mirek Prýmek kdy 26. 06. 2017, 21:49:17
Citace od: v kdy 26. 06. 2017, 21:34:38
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
Citace od: v kdy 26. 06. 2017, 21:34:38
Citace od: zboj kdy 26. 06. 2017, 20:45:54
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.
Citace od: zboj kdy 26. 06. 2017, 23:19:56
Citace od: v kdy 26. 06. 2017, 21:34:38
Citace od: zboj kdy 26. 06. 2017, 20:45:54
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?
Citace od: v kdy 26. 06. 2017, 23:21:47
Citace od: zboj kdy 26. 06. 2017, 23:19:56
Citace od: v kdy 26. 06. 2017, 21:34:38
Citace od: zboj kdy 26. 06. 2017, 20:45:54
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?
Citace od: v kdy 26. 06. 2017, 23:21:47
Citace od: zboj kdy 26. 06. 2017, 23:19:56
Citace od: v kdy 26. 06. 2017, 21:34:38
Citace od: zboj kdy 26. 06. 2017, 20:45:54
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.
Citace od: Pako kdy 27. 06. 2017, 00:06:10
Citace od: v kdy 26. 06. 2017, 23:21:47
Citace od: zboj kdy 26. 06. 2017, 23:19:56
Citace od: v kdy 26. 06. 2017, 21:34:38
Citace od: zboj kdy 26. 06. 2017, 20:45:54
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.
Citace od: desprit kdy 26. 06. 2017, 18:19:08
Jde to říct i jinak nebo to je fakt tak složité?
Nejde, je to složité.