reklama

Conditional conformance v OOP


reklama


andy

Re:Conditional conformance v OOP
« Odpověď #16 kdy: 19. 02. 2018, 09:46:14 »
Koukám teď na Swift a jeho "conditional conformance". Má otázka: v jakých dalších mainstreamových jazycích se vyskytuje? Podle mých skromných znalostí to C++ ani Java nemá, ale neznám moc třeba Rust, Kotlin atd.
V Haskellu. A je to dost geniální vlastnost, když se to použije rekurzivně, tak to vypadá jako černá magie.

v

Re:Conditional conformance v OOP
« Odpověď #17 kdy: 19. 02. 2018, 11:07:28 »
Koukám teď na Swift a jeho "conditional conformance". Má otázka: v jakých dalších mainstreamových jazycích se vyskytuje? Podle mých skromných znalostí to C++ ani Java nemá, ale neznám moc třeba Rust, Kotlin atd.
V Haskellu. A je to dost geniální vlastnost, když se to použije rekurzivně, tak to vypadá jako černá magie.
jako že "instance (A b) => A (C b)"?

Labrat

Re:Conditional conformance v OOP
« Odpověď #18 kdy: 19. 02. 2018, 13:01:00 »
Jako důvod to je debilní, oficiálně to je ale na TO DO seznamu, jen s nízkou prioritou. Mě Swift moc nebere, protože je dost Apple-centric a já píšu hlavně pro Linux, ale HKT používám v C++ (ať žije statický polymorfismus) a rozhodně bych rád, aby se rozšířily.

Jakže děláte HKT v C++? To by mě docela zajímalo.
Částečnou specializací šablon. Jdou tak napsat generické monády. Spíš jsem si jen hrál, když jsem to chtěl v C++ napsat haskellím stylem. Inspirací byl článek o F-algebrách v C++.

andy

Re:Conditional conformance v OOP
« Odpověď #19 kdy: 19. 02. 2018, 13:12:29 »
Koukám teď na Swift a jeho "conditional conformance". Má otázka: v jakých dalších mainstreamových jazycích se vyskytuje? Podle mých skromných znalostí to C++ ani Java nemá, ale neznám moc třeba Rust, Kotlin atd.
V Haskellu. A je to dost geniální vlastnost, když se to použije rekurzivně, tak to vypadá jako černá magie.
jako že "instance (A b) => A (C b)"?
Přesně.


Labrat

Re:Conditional conformance v OOP
« Odpověď #20 kdy: 19. 02. 2018, 13:26:47 »
Koukám teď na Swift a jeho "conditional conformance". Má otázka: v jakých dalších mainstreamových jazycích se vyskytuje? Podle mých skromných znalostí to C++ ani Java nemá, ale neznám moc třeba Rust, Kotlin atd.
Ono nejen ta konformance, celý koncept extensions je velmi mocný, protože umožňuje vzít jakýkoliv typ a rozšířit ho pro libovolný protokol bez dědění. A to vše s typovou kontrolou při překladu.

10xCoder

Re:Conditional conformance v OOP
« Odpověď #21 kdy: 19. 02. 2018, 17:54:01 »
Jako důvod to je debilní, oficiálně to je ale na TO DO seznamu, jen s nízkou prioritou. Mě Swift moc nebere, protože je dost Apple-centric a já píšu hlavně pro Linux, ale HKT používám v C++ (ať žije statický polymorfismus) a rozhodně bych rád, aby se rozšířily.

Jakže děláte HKT v C++? To by mě docela zajímalo.
V C++ přece může být parametrem šablony šablona, což je přesně definice HKT. Žádná hluboká věda v tom není a vůbec nemusíme zmiňovat fujmonády :)

n

Re:Conditional conformance v OOP
« Odpověď #22 kdy: 19. 02. 2018, 19:42:18 »
Jako důvod to je debilní, oficiálně to je ale na TO DO seznamu, jen s nízkou prioritou. Mě Swift moc nebere, protože je dost Apple-centric a já píšu hlavně pro Linux, ale HKT používám v C++ (ať žije statický polymorfismus) a rozhodně bych rád, aby se rozšířily.

Jakže děláte HKT v C++? To by mě docela zajímalo.
V C++ přece může být parametrem šablony šablona, což je přesně definice HKT. Žádná hluboká věda v tom není a vůbec nemusíme zmiňovat fujmonády :)

jj, jak jsem pastnul vyse: https://stackoverflow.com/questions/2565097/higher-kinded-types-with-c
kde je teda sice zrovna priklad monady, ale whatever... :)
templatama se da v c++ napsat vsecko, i kdyz teda pro nezkuseneho je to dost tezce citelne :) ..ale zas pouziti uz muze byt celkem pekne...

 

reklama