Typový system versus unittesty

BoneFlute

  • *****
  • 1 475
    • Zobrazit profil
Re:Typový system versus unittesty
« Odpověď #960 kdy: 09. 11. 2018, 00:24:15 »
co je "typ"?
metadata k hodnote?

metadata to je neco vagniho, to muze byt treba cas vytvoreni.

Datovy typ je spis dvojice: mnozina hodnot a mnozina operaci, ne?
Množina operací asi nebude stačit. Ještě je třeba název kategorie pro nominální typování.


JSH

Re:Typový system versus unittesty
« Odpověď #961 kdy: 09. 11. 2018, 11:43:02 »
co je "typ"?
metadata k hodnote?

metadata to je neco vagniho, to muze byt treba cas vytvoreni.

Datovy typ je spis dvojice: mnozina hodnot a mnozina operaci, ne?
Množina operací asi nebude stačit. Ještě je třeba název kategorie pro nominální typování.
Já bych to omezil na pojmenovanou množinu hodnot. Operace běžně pracují s více hodnotama různého typu, takže by se stejná operace dala najít ve spoustě typů.

BoneFlute

  • *****
  • 1 475
    • Zobrazit profil
Re:Typový system versus unittesty
« Odpověď #962 kdy: 09. 11. 2018, 12:51:23 »
Datovy typ je spis dvojice: mnozina hodnot a mnozina operaci, ne?
Množina operací asi nebude stačit. Ještě je třeba název kategorie pro nominální typování.
Já bych to omezil na pojmenovanou množinu hodnot. Operace běžně pracují s více hodnotama různého typu, takže by se stejná operace dala najít ve spoustě typů.

buildPerson :: Name -> Name -> Age -> Person
bmi :: Age -> Sex -> Weight -> Height -> BMI

Samozřejmě často si vystačím jen s rozhraním na základě operací. Ale ten nominální typ mi pomůže ohlídat, že tam nervu blbost.

... ale možná že "pojmenovaná množina hodnot" je to, o čem mluvím :-) Age je pojmenovaný subset Intu. Kde potřebuju Int mohu dát Age, kde potřebuju Age nemohu dát Int.
« Poslední změna: 09. 11. 2018, 12:53:48 od BoneFlute »

Re:Typový system versus unittesty
« Odpověď #963 kdy: 19. 12. 2018, 16:57:23 »

Bacsa

Re:Typový system versus unittesty
« Odpověď #964 kdy: 19. 12. 2018, 18:30:23 »
Na tohle sem dnes narazil: https://serokell.io/blog/2018/12/17/why-dependent-haskell
Dost zajímavé, ale není to pro BFP.


Idris

  • *****
  • 923
    • Zobrazit profil
    • E-mail
Re:Typový system versus unittesty
« Odpověď #965 kdy: 10. 10. 2019, 13:10:33 »

Idris

  • *****
  • 923
    • Zobrazit profil
    • E-mail
Re:Typový system versus unittesty
« Odpověď #966 kdy: 14. 09. 2020, 02:15:57 »
Před pár dny jsem narazil na indexikální typy a vzpomněl si, že tebe typové systémy a intuicionistická logika zajímají, tak jen dávám tip ;) Je to něco jako “this”, ale na úrovni typů. Jdou skrz to implementovat higher-kinded typy v systému prvního řádu (bez explicitních HKT), takže ve výsledku je takový systém formálně silnější (a kompatibilní s dědičností).

BoneFlute

  • *****
  • 1 475
    • Zobrazit profil
Re:Typový system versus unittesty
« Odpověď #967 kdy: 14. 09. 2020, 14:47:44 »
Před pár dny jsem narazil na indexikální typy a vzpomněl si, že tebe typové systémy a intuicionistická logika zajímají, tak jen dávám tip ;) Je to něco jako “this”, ale na úrovni typů. Jdou skrz to implementovat higher-kinded typy v systému prvního řádu (bez explicitních HKT), takže ve výsledku je takový systém formálně silnější (a kompatibilní s dědičností).

Díky. Jsem rád za každý hint.
Nějaký odkaz, článek, by nebyl?

Idris

  • *****
  • 923
    • Zobrazit profil
    • E-mail
Re:Typový system versus unittesty
« Odpověď #968 kdy: 15. 09. 2020, 22:16:19 »
Před pár dny jsem narazil na indexikální typy a vzpomněl si, že tebe typové systémy a intuicionistická logika zajímají, tak jen dávám tip ;) Je to něco jako “this”, ale na úrovni typů. Jdou skrz to implementovat higher-kinded typy v systému prvního řádu (bez explicitních HKT), takže ve výsledku je takový systém formálně silnější (a kompatibilní s dědičností).
Díky. Jsem rád za každý hint.
Nějaký odkaz, článek, by nebyl?
Takhle z hlavy mě napadá jen dokumentace ke Swiftu, zejména použití Self a jeho spojení s asociovanými typy. Teď zrovna nemám na nic čas, ale za pár dnů k tomu můžu něco napsat tady.

BoneFlute

  • *****
  • 1 475
    • Zobrazit profil
Re:Typový system versus unittesty
« Odpověď #969 kdy: 16. 09. 2020, 00:55:07 »
Před pár dny jsem narazil na indexikální typy a vzpomněl si, že tebe typové systémy a intuicionistická logika zajímají, tak jen dávám tip ;) Je to něco jako “this”, ale na úrovni typů. Jdou skrz to implementovat higher-kinded typy v systému prvního řádu (bez explicitních HKT), takže ve výsledku je takový systém formálně silnější (a kompatibilní s dědičností).
Díky. Jsem rád za každý hint.
Nějaký odkaz, článek, by nebyl?
Takhle z hlavy mě napadá jen dokumentace ke Swiftu, zejména použití Self a jeho spojení s asociovanými typy. Teď zrovna nemám na nic čas, ale za pár dnů k tomu můžu něco napsat tady.

To by bylo super. Na Swift se podívám. Já hledal obecně, a našel jen něco pro TypeScript, ale to odhadem je něco jiného stejného jména.

Idris

  • *****
  • 923
    • Zobrazit profil
    • E-mail
Re:Typový system versus unittesty
« Odpověď #970 kdy: 22. 09. 2020, 23:47:53 »
To by bylo super. Na Swift se podívám. Já hledal obecně, a našel jen něco pro TypeScript, ale to odhadem je něco jiného stejného jména.
Jo, to bylo asi “indexable types”, já zmiňoval “indexical types.” To jsou typy, jejichž denotát závisí na kontextu. V podstatě něco jako “this”, ale na úrovni typů. Jsou to obecně higher-kinded typy, které žádný z hlavních OO jazyků vyjma C++ nemá. V metodách se dá používat Self[T] a podobné srandičky, což vede k mnohem silnějšímu typovému systému, než má třeba Java.