Programovanie a modne trendy?

Ondra.

Re:Programovanie a modne trendy?
« Odpověď #90 kdy: 30. 08. 2017, 08:24:34 »
V IT taky můžu vysvětlit generické typy správně a precizně pomocí funktorů.

Tak davej, davej, rad se neco priucim. Staci odkaz na priklad s obrazky.


Aoidhghean

Re:Programovanie a modne trendy?
« Odpověď #91 kdy: 30. 08. 2017, 09:22:56 »
V IT taky můžu vysvětlit generické typy správně a precizně pomocí funktorů.

Tak davej, davej, rad se neco priucim. Staci odkaz na priklad s obrazky.
Obrázky jsou pro děti. Jinak se to tu už probíralo dostatečně, generický typ je (endo)funktor (nebo bifunktor, tri- apod. podle počtu parametrů) v kategorii typů. Případně se dá jít výše a uvažovat endofunktor v kategorii funktorů, ale to je jen pro fajnšmekry (a většina jazyků to stejně neumí) - viz článek Generics of higher kind.

v

Re:Programovanie a modne trendy?
« Odpověď #92 kdy: 30. 08. 2017, 09:53:54 »
V IT taky můžu vysvětlit generické typy správně a precizně pomocí funktorů.

Tak davej, davej, rad se neco priucim. Staci odkaz na priklad s obrazky.
Obrázky jsou pro děti. Jinak se to tu už probíralo dostatečně, generický typ je (endo)funktor (nebo bifunktor, tri- apod. podle počtu parametrů) v kategorii typů. Případně se dá jít výše a uvažovat endofunktor v kategorii funktorů, ale to je jen pro fajnšmekry (a většina jazyků to stejně neumí) - viz článek Generics of higher kind.
čistě intuitivně se mi nezdá, že by každá šablona mohla být funktor...

Aoidhghean

Re:Programovanie a modne trendy?
« Odpověď #93 kdy: 30. 08. 2017, 10:08:59 »
V IT taky můžu vysvětlit generické typy správně a precizně pomocí funktorů.

Tak davej, davej, rad se neco priucim. Staci odkaz na priklad s obrazky.
Obrázky jsou pro děti. Jinak se to tu už probíralo dostatečně, generický typ je (endo)funktor (nebo bifunktor, tri- apod. podle počtu parametrů) v kategorii typů. Případně se dá jít výše a uvažovat endofunktor v kategorii funktorů, ale to je jen pro fajnšmekry (a většina jazyků to stejně neumí) - viz článek Generics of higher kind.
čistě intuitivně se mi nezdá, že by každá šablona mohla být funktor...
V podstatě ano, kromě variadických. Akorát je otázka, v jaké kategorii ten funktor je, to může být různé.

v

Re:Programovanie a modne trendy?
« Odpověď #94 kdy: 30. 08. 2017, 11:30:14 »
V IT taky můžu vysvětlit generické typy správně a precizně pomocí funktorů.

Tak davej, davej, rad se neco priucim. Staci odkaz na priklad s obrazky.
Obrázky jsou pro děti. Jinak se to tu už probíralo dostatečně, generický typ je (endo)funktor (nebo bifunktor, tri- apod. podle počtu parametrů) v kategorii typů. Případně se dá jít výše a uvažovat endofunktor v kategorii funktorů, ale to je jen pro fajnšmekry (a většina jazyků to stejně neumí) - viz článek Generics of higher kind.
čistě intuitivně se mi nezdá, že by každá šablona mohla být funktor...
V podstatě ano, kromě variadických. Akorát je otázka, v jaké kategorii ten funktor je, to může být různé.
no psal jste o kategorii typů, dál je tu otázka co myslíte funktorem


Aoidhghean

Re:Programovanie a modne trendy?
« Odpověď #95 kdy: 30. 08. 2017, 12:02:13 »
V IT taky můžu vysvětlit generické typy správně a precizně pomocí funktorů.

Tak davej, davej, rad se neco priucim. Staci odkaz na priklad s obrazky.
Obrázky jsou pro děti. Jinak se to tu už probíralo dostatečně, generický typ je (endo)funktor (nebo bifunktor, tri- apod. podle počtu parametrů) v kategorii typů. Případně se dá jít výše a uvažovat endofunktor v kategorii funktorů, ale to je jen pro fajnšmekry (a většina jazyků to stejně neumí) - viz článek Generics of higher kind.
čistě intuitivně se mi nezdá, že by každá šablona mohla být funktor...
V podstatě ano, kromě variadických. Akorát je otázka, v jaké kategorii ten funktor je, to může být různé.
no psal jste o kategorii typů, dál je tu otázka co myslíte funktorem
Funktor má matematicky jasnou definici (viz třeba Wikipedie). Když pominu variadické šablony, tak každá šablona je funktor. Kategorie, na kterých tyto funktory operují, tvoří hierarchii, nicméně většina kódu (99,9%?) se nejspíše pohybuje jen v kategorii typů, to je té nejnižší. Tyto typy se někdy zvou konkrétní a jejich druh (kind) je *. Funktory nad nimi jsou pak druhu *->* (hvězdičky v této standardní notaci označují konkrétní typy). Klidně můžu mít třeba bifunktor *->*->*. Jakmile mám ale například (*->*)->*, jsem už mimo kategorii typů a příslušný funktor není endofunktor (příkladem budiž “template template” v C++).

v

Re:Programovanie a modne trendy?
« Odpověď #96 kdy: 30. 08. 2017, 12:20:20 »
V IT taky můžu vysvětlit generické typy správně a precizně pomocí funktorů.

Tak davej, davej, rad se neco priucim. Staci odkaz na priklad s obrazky.
Obrázky jsou pro děti. Jinak se to tu už probíralo dostatečně, generický typ je (endo)funktor (nebo bifunktor, tri- apod. podle počtu parametrů) v kategorii typů. Případně se dá jít výše a uvažovat endofunktor v kategorii funktorů, ale to je jen pro fajnšmekry (a většina jazyků to stejně neumí) - viz článek Generics of higher kind.
čistě intuitivně se mi nezdá, že by každá šablona mohla být funktor...
V podstatě ano, kromě variadických. Akorát je otázka, v jaké kategorii ten funktor je, to může být různé.
no psal jste o kategorii typů, dál je tu otázka co myslíte funktorem
Funktor má matematicky jasnou definici (viz třeba Wikipedie). Když pominu variadické šablony, tak každá šablona je funktor. Kategorie, na kterých tyto funktory operují, tvoří hierarchii, nicméně většina kódu (99,9%?) se nejspíše pohybuje jen v kategorii typů, to je té nejnižší. Tyto typy se někdy zvou konkrétní a jejich druh (kind) je *. Funktory nad nimi jsou pak druhu *->* (hvězdičky v této standardní notaci označují konkrétní typy). Klidně můžu mít třeba bifunktor *->*->*. Jakmile mám ale například (*->*)->*, jsem už mimo kategorii typů a příslušný funktor není endofunktor (příkladem budiž “template template” v C++).
pokud funktorem není myšlen objekt implementující operátor volání, tak se tím obvykle myslí kovariantní funktor...

Aoidhghean

Re:Programovanie a modne trendy?
« Odpověď #97 kdy: 30. 08. 2017, 12:36:25 »
V IT taky můžu vysvětlit generické typy správně a precizně pomocí funktorů.

Tak davej, davej, rad se neco priucim. Staci odkaz na priklad s obrazky.
Obrázky jsou pro děti. Jinak se to tu už probíralo dostatečně, generický typ je (endo)funktor (nebo bifunktor, tri- apod. podle počtu parametrů) v kategorii typů. Případně se dá jít výše a uvažovat endofunktor v kategorii funktorů, ale to je jen pro fajnšmekry (a většina jazyků to stejně neumí) - viz článek Generics of higher kind.
čistě intuitivně se mi nezdá, že by každá šablona mohla být funktor...
V podstatě ano, kromě variadických. Akorát je otázka, v jaké kategorii ten funktor je, to může být různé.
no psal jste o kategorii typů, dál je tu otázka co myslíte funktorem
Funktor má matematicky jasnou definici (viz třeba Wikipedie). Když pominu variadické šablony, tak každá šablona je funktor. Kategorie, na kterých tyto funktory operují, tvoří hierarchii, nicméně většina kódu (99,9%?) se nejspíše pohybuje jen v kategorii typů, to je té nejnižší. Tyto typy se někdy zvou konkrétní a jejich druh (kind) je *. Funktory nad nimi jsou pak druhu *->* (hvězdičky v této standardní notaci označují konkrétní typy). Klidně můžu mít třeba bifunktor *->*->*. Jakmile mám ale například (*->*)->*, jsem už mimo kategorii typů a příslušný funktor není endofunktor (příkladem budiž “template template” v C++).
pokud funktorem není myšlen objekt implementující operátor volání, tak se tím obvykle myslí kovariantní funktor...
Přesně, jde o kovariantní funktory.

v

Re:Programovanie a modne trendy?
« Odpověď #98 kdy: 30. 08. 2017, 13:25:03 »
Přesně, jde o kovariantní funktory.
no a ne každá šablona (s jedním parametrem) je kovariantní funktor

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Programovanie a modne trendy?
« Odpověď #99 kdy: 30. 08. 2017, 13:52:12 »
Přesně, jde o kovariantní funktory.
no a ne každá šablona (s jedním parametrem) je kovariantní funktor
Od kdy ne?

v

Re:Programovanie a modne trendy?
« Odpověď #100 kdy: 30. 08. 2017, 14:31:40 »
Přesně, jde o kovariantní funktory.
no a ne každá šablona (s jedním parametrem) je kovariantní funktor
Od kdy ne?
na to neumím odpovědět
kdyby někoho zajímal příklad, tak mám za to, že v c++ to je např. http://en.cppreference.com/w/cpp/utility/rel_ops/operator_cmp
a v haskellu pak např. hackage.haskell.org/package/contravariant
(a možná kontejner set?)

Brambor

Re:Programovanie a modne trendy?
« Odpověď #101 kdy: 30. 08. 2017, 15:00:00 »
Tak jsem přešetl pár listů tohodle vlákna a začlo se mi mlžit před očima. Jaká móda? Jestli hledáš módu, debatuj o nových adidaskách, nebo o čivavách. Jazyk, který se používá, se používá nejčastěji proto, že je na pořadované řešení nejefektivnější(nebo jeden z). Co se s dobou mění, je akorát % programátorů, kteří inklinujou k nějakému jazyku, a to je osobní preference.

Ondra.

Re:Programovanie a modne trendy?
« Odpověď #102 kdy: 30. 08. 2017, 19:56:18 »
Tak jsem přešetl pár listů tohodle vlákna a začlo se mi mlžit před očima. Jaká móda? Jestli hledáš módu, debatuj o nových adidaskách, nebo o čivavách. Jazyk, který se používá, se používá nejčastěji proto, že je na pořadované řešení nejefektivnější(nebo jeden z). Co se s dobou mění, je akorát % programátorů, kteří inklinujou k nějakému jazyku, a to je osobní preference.

Ale kdeze, programuje se v tom, co hezky mlady Rus v cernem rolaku prezentuje na cool konferenci. To, ze to neni nove ani lepsi je uz jedno.

Kit

Re:Programovanie a modne trendy?
« Odpověď #103 kdy: 30. 08. 2017, 23:45:20 »
Tak jsem přešetl pár listů tohodle vlákna a začlo se mi mlžit před očima. Jaká móda? Jestli hledáš módu, debatuj o nových adidaskách, nebo o čivavách. Jazyk, který se používá, se používá nejčastěji proto, že je na pořadované řešení nejefektivnější(nebo jeden z). Co se s dobou mění, je akorát % programátorů, kteří inklinujou k nějakému jazyku, a to je osobní preference.

Dnešním módním trendem je funkcionální programování včetně teorie kategorií. Čím méně srozumitelně podané, tím víc cool.

Aoidhghean

Re:Programovanie a modne trendy?
« Odpověď #104 kdy: 31. 08. 2017, 00:44:41 »
Tak jsem přešetl pár listů tohodle vlákna a začlo se mi mlžit před očima. Jaká móda? Jestli hledáš módu, debatuj o nových adidaskách, nebo o čivavách. Jazyk, který se používá, se používá nejčastěji proto, že je na pořadované řešení nejefektivnější(nebo jeden z). Co se s dobou mění, je akorát % programátorů, kteří inklinujou k nějakému jazyku, a to je osobní preference.

Dnešním módním trendem je funkcionální programování včetně teorie kategorií. Čím méně srozumitelně podané, tím víc cool.
FP je koncepčně jednoduché, že vychází z matematiky je obecně výhoda, když člověk není totální pako i na trojčlenku.