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.
Citace: Prograt 17. 02. 2018, 22:08:16Kouká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.
Citace: Labrat 19. 02. 2018, 05:10:21Jako 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.
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.
Citace: andy 19. 02. 2018, 09:46:14Citace: Prograt 17. 02. 2018, 22:08:16Kouká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)"?
Citace: Labrat 19. 02. 2018, 05:10:21Jako 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.
Citace: klokan 19. 02. 2018, 05:34:19Citace: Labrat 19. 02. 2018, 05:10:21Jako 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
Citace: Labrat 19. 02. 2018, 03:50:04U Swiftu je k tomu diskuse na fóru vývojářů. Tvrdí, že většina lidí by to nepoužívala, protože to nechápe.Totéž tvrdí vývojáři Rustu. Možná, že konkrétně v případě Swiftu na tom něco je, přece jenom je to jazyk určený především na vývoj appek pro iPhone, takže HKT a monádám v této cílové skupině asi hodně lidí opravdu moc nerozumí (ačkoli nevím, jestli to je dobrý důvod pro to, aby to nebylo).
U Swiftu je k tomu diskuse na fóru vývojářů. Tvrdí, že většina lidí by to nepoužívala, protože to nechápe.
Citace: klokan 18. 02. 2018, 07:08:20Je ale spousta věcí, včetně plné podpory monád, které tak doopravdy implementovat nejdou. Je to velká škoda a je zajímavé, že i Swift se rozhodl se takto omezit. Rád bych věděl, co návrhářům moderních jazyků na typech vyšších druhů tolik vadí? U Swiftu je k tomu diskuse na fóru vývojářů. Tvrdí, že většina lidí by to nepoužívala, protože to nechápe.
Je ale spousta věcí, včetně plné podpory monád, které tak doopravdy implementovat nejdou. Je to velká škoda a je zajímavé, že i Swift se rozhodl se takto omezit. Rád bych věděl, co návrhářům moderních jazyků na typech vyšších druhů tolik vadí?
Jestli tomu dobře rozumím, tak to je jako koncepty v C++20. Což je v podstatě jen syntaxe pro SFINAE, který se v C++ používá od doby zavedení šablon.