Co si myslíte o OOP?

BaldSlattery

Re:Co si myslíte o OOP?
« Odpověď #1035 kdy: 17. 01. 2019, 19:18:35 »
Pak to chce typovou třídu. Nijak to ale nesouvisí se zahrnutím velikosti kolekce přímo do typu.
K čemu by mi byla typová třída, když mi plně vyhovuje rozhraní? A tu kolekci chci mít nafukovací, takže její fixní velikost by mi byla také k ničemu.
::) Typova trida je v podstate rozhrani, akorat o neco lepsi.
Ano


BaldSlattery

Re:Co si myslíte o OOP?
« Odpověď #1036 kdy: 17. 01. 2019, 19:22:46 »
Jinak BaldSlatterovi - premyslel jsem nad tim a uznavam, ze mas pravdu o tom simply-typed lambda kalkulu. Asi to brzo vyzkousim v praxi, protoze se chystam napsat si prekladac totalniho funkcionalniho jazyka, ktery bude mit STLC jako typovy system.
Tak to jsem rád. Ne kvůli tomu, kdo měl/má pravdu, ale že někdo projevil zájem a iniciativu a snad se něco zajímavé naučil. S překladačem držím palce.

BaldSlattery

Re:Co si myslíte o OOP?
« Odpověď #1037 kdy: 17. 01. 2019, 19:25:28 »
kontinuace je monáda
monáda je beztak při troše vůle skoro všechno
Pokud to zrovna není diáda...

Kit

Re:Co si myslíte o OOP?
« Odpověď #1038 kdy: 17. 01. 2019, 19:26:50 »
Pak to chce typovou třídu. Nijak to ale nesouvisí se zahrnutím velikosti kolekce přímo do typu.
K čemu by mi byla typová třída, když mi plně vyhovuje rozhraní? A tu kolekci chci mít nafukovací, takže její fixní velikost by mi byla také k ničemu.
::) Typova trida je v podstate rozhrani, akorat o neco lepsi.

V objektových jazycích pojem "typová třída" poněkud ztrácí svůj význam, ne?

Kadet

Re:Co si myslíte o OOP?
« Odpověď #1039 kdy: 17. 01. 2019, 19:56:37 »
[...] je suffix takovyho logu skutecne kontinuace. [...] je kontinuace rovna tomu zasobniku.
Sorry, ale obraty "log je kontinuace" a "kontinuace je rovna zásobníku" jsou mi teda úplně nesrozumitelný :)

(Ne že bys to musel vysvětlovat ausgerechnet mně, ale docela pochybuju, žes tím příspěvkem někomu něco srozumitelnýho sdělil :) To jenom tak zpětná vazba pro tebe )

Dik za zpetnou vazbu. Event log je termin pouzivanej v event sourcingu. Event log = posloupnost zprav reprezentujicich zmenu nejakyho stavu.

Tech stejnych zprav jako 'volani metody' ve smalltalku, jen jsou ty zpravy nekam logovany a ne zapomenuty.


Re:Co si myslíte o OOP?
« Odpověď #1040 kdy: 17. 01. 2019, 20:57:12 »
Dik za zpetnou vazbu. Event log je termin pouzivanej v event sourcingu. Event log = posloupnost zprav reprezentujicich zmenu nejakyho stavu.

Tech stejnych zprav jako 'volani metody' ve smalltalku, jen jsou ty zpravy nekam logovany a ne zapomenuty.
Ja vim,  co je log.  Kafka,  Vue.js jsou muj denni chleba.  Zrovna nedavno jsem dopsal stream processing engine (Kafka/Go)  :)

Spis jde o to,  ze log je log a kontinuace je kontinuace.  I kdyz to spolu souvisi, je to neco jinyho.

Je to jako bys rekl,  ze seznam je funkce :) Jo,  funkce se da popsat seznamem a naopak, ale i tak je to neco jinyho :)

Kadet

Re:Co si myslíte o OOP?
« Odpověď #1041 kdy: 17. 01. 2019, 22:06:36 »
Dik za zpetnou vazbu. Event log je termin pouzivanej v event sourcingu. Event log = posloupnost zprav reprezentujicich zmenu nejakyho stavu.

Tech stejnych zprav jako 'volani metody' ve smalltalku, jen jsou ty zpravy nekam logovany a ne zapomenuty.
Ja vim,  co je log.  Kafka,  Vue.js jsou muj denni chleba.  Zrovna nedavno jsem dopsal stream processing engine (Kafka/Go)  :)

Spis jde o to,  ze log je log a kontinuace je kontinuace.  I kdyz to spolu souvisi, je to neco jinyho.

Je to jako bys rekl,  ze seznam je funkce :) Jo,  funkce se da popsat seznamem a naopak, ale i tak je to neco jinyho :)

Pokud delas se stream processingem, tak jsi blizko.

log je log a kontinuace je kontinuace mi nerekce co je ani jedno ani druhy

seznam = funkce a naopak. Jestli to je pravda, tak je to isomorfismus, jinak receno prejmenovani.

Kontinuace je 'zbytek vypoctu'.
Tj. existuje zacatek a konec vypoctu. Necham vypocet chvili bezet od zacatku a pak ho pozastavim. Vsechno mezi zacatkem a timhle momentem je 'provedena kalkulace'. Cokoliv mezi timhle momentem a koncem je 'zbytek kalkulace'. Kontinuace je prave ta druha cast.

Suffix logu je 'zbytek logu'. Kazda zprava v logu predstavuje jednu operaci vypoctu.
Existuje zacatek a konec logu. Necham prehrat log do nejakyho bodu uprostred. Cokoliv mezi zacatkem a timhle bodem je prefix logu/provedena kalkulace. Cokoliv od tohoto bodu je suffix logu/zbyvajici vypocet.

log je zhmotneni (reifikace) vypoctu. Suffix logu = kontinuace = zbytek vypoctu

Zasobnik je reifikace zbytku vypoctu ve vnitrnostech nejakyho runtimu. Zasobnik = kontinuace. Takhle jsou kontinuace implementovany v jazycich kde se s nima da explicitne pracovat. Vezmes kus stacku a hodis ho do promenny. Kdyz pak tu promennou zavolas, tak se akorat vezme ten ulozenej stack, pleskne se na stack v tom momentu.

BoneFlute

  • *****
  • 1 987
    • Zobrazit profil
Re:Co si myslíte o OOP?
« Odpověď #1042 kdy: 17. 01. 2019, 22:13:26 »
K čemu by mi byla typová třída, když mi plně vyhovuje rozhraní? A tu kolekci chci mít nafukovací, takže její fixní velikost by mi byla také k ničemu.
UserName = String[1..255]

Naprosto běžný a obvyklý use case, který se v praxi řeší (zatím) blbě pomocí assertů.

Kit

Re:Co si myslíte o OOP?
« Odpověď #1043 kdy: 17. 01. 2019, 22:31:11 »
K čemu by mi byla typová třída, když mi plně vyhovuje rozhraní? A tu kolekci chci mít nafukovací, takže její fixní velikost by mi byla také k ničemu.
UserName = String[1..255]

Naprosto běžný a obvyklý use case, který se v praxi řeší (zatím) blbě pomocí assertů.

To jako pole pro 255 stringů? K čemu mi to bude, když potřebuji seznam stringů a dopředu nevím, zda jich bude 20 nebo 20000?

BoneFlute

  • *****
  • 1 987
    • Zobrazit profil
Re:Co si myslíte o OOP?
« Odpověď #1044 kdy: 17. 01. 2019, 22:34:07 »
K čemu by mi byla typová třída, když mi plně vyhovuje rozhraní? A tu kolekci chci mít nafukovací, takže její fixní velikost by mi byla také k ničemu.
UserName = String[1..255]

Naprosto běžný a obvyklý use case, který se v praxi řeší (zatím) blbě pomocí assertů.

To jako pole pro 255 stringů? K čemu mi to bude, když potřebuji seznam stringů a dopředu nevím, zda jich bude 20 nebo 20000?
Ne, je to typ UserName, který obsahuje string v rozsahu 1 až 255. Omezení délky textu.

Kit

Re:Co si myslíte o OOP?
« Odpověď #1045 kdy: 17. 01. 2019, 23:44:25 »
K čemu by mi byla typová třída, když mi plně vyhovuje rozhraní? A tu kolekci chci mít nafukovací, takže její fixní velikost by mi byla také k ničemu.
UserName = String[1..255]
Naprosto běžný a obvyklý use case, který se v praxi řeší (zatím) blbě pomocí assertů.
To jako pole pro 255 stringů? K čemu mi to bude, když potřebuji seznam stringů a dopředu nevím, zda jich bude 20 nebo 20000?
Ne, je to typ UserName, který obsahuje string v rozsahu 1 až 255. Omezení délky textu.

Který objektový jazyk tohle používá?

BoneFlute

  • *****
  • 1 987
    • Zobrazit profil
Re:Co si myslíte o OOP?
« Odpověď #1046 kdy: 18. 01. 2019, 00:25:22 »
K čemu by mi byla typová třída, když mi plně vyhovuje rozhraní? A tu kolekci chci mít nafukovací, takže její fixní velikost by mi byla také k ničemu.
UserName = String[1..255]
Naprosto běžný a obvyklý use case, který se v praxi řeší (zatím) blbě pomocí assertů.
To jako pole pro 255 stringů? K čemu mi to bude, když potřebuji seznam stringů a dopředu nevím, zda jich bude 20 nebo 20000?
Ne, je to typ UserName, který obsahuje string v rozsahu 1 až 255. Omezení délky textu.

Který objektový jazyk tohle používá?
Tak nezněla otázka.

Re:Co si myslíte o OOP?
« Odpověď #1047 kdy: 18. 01. 2019, 12:24:55 »
Kontinuaci můžeš implementovat pomocí logu (a naopak), ale jsou to jiné koncepty.
BTW, dobře je to vidět na tom tvrzení "kontinuace je monáda". To je pravda (za nějakých podmínek).

Tvrzení "log je monáda" je dost zhovadilost.
« Poslední změna: 18. 01. 2019, 12:32:28 od Mirek Prýmek »

Re:Co si myslíte o OOP?
« Odpověď #1048 kdy: 18. 01. 2019, 12:37:42 »
Doprčic, teď jsem dal omylem edit místo citace.

V tom původním příspěvku bylo něco jako:

seznam = funkce a naopak. Jestli to je pravda, tak je to isomorfismus, jinak receno prejmenovani.
1. obecně není už proto, že funkčních hodnot může být nespočetně mnoho, zatímco položek listu je vždycky jenom spočetně.

2. a i kdyby to byla pravda (v reálném IT máme jenom spočetné množiny), tak občas máme nějaké koncepty, které jsou (třeba za nějakých omezujících podmínek) vzájemně převoditelné a i tak se hodí je rozlišovat. Např. gramatika a příslušný automat jsou dva různé pohledy na tutéž věc a přitom jsou to dva různé koncepty, které je dobré rozlišovat. Gramatika není automat. Gramatika je gramatika.

Kontinuaci můžeš implementovat pomocí logu (a naopak), ale jsou to jiné koncepty.

BaldSlattery

Re:Co si myslíte o OOP?
« Odpověď #1049 kdy: 18. 01. 2019, 12:57:13 »
Kontinuace je 'zbytek vypoctu'.
Je to přesně naopak, kontinuace je funkce reprezentující nějaký výpočet, které se předá “zbytek výpočtu” ve formě funkce. Z Wikipedie bys mohl pochopit aspoň převod konstanty na příslušnou kontinuaci.