916
/dev/null / Re:Těžké OOP problémy
« kdy: 10. 11. 2019, 11:01:25 »async funkce obyčejná funkce vracející promiseJistě, protože platí, že Promise[T] je podmnožina U.
Zjevně nechápeš pointu, nevadí, stane se.
Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.
async funkce obyčejná funkce vracející promiseJistě, protože platí, že Promise[T] je podmnožina U.
Když už máš tu trpělivost na diskusi s trotlama, vysvětli mu, kde tam je bindZas ale nemám trpělivost na to, poslouchat, že bind[1] je něco úplně jinýho a co že to melu za bláboly
)neplatil ani po úpravách, vytvoření promisu bez čekání na návratovou hodnotu je naprosto validní kód.Ještě jednou a naposledy:
T -> U
async funkce je typuT -> Promise[U]
Jsou to dva různé světy, jeden červený, druhý modrý. Jestli to nechápeš, nebo nechceš chápat, je celkem jedno. Tak jako tak diskuse s tebou nemá smysl.
Nechcete se víc vnímat?V čem vidíš problém? Ten článek má ty definice udělané tak, aby seděly na nějakou implementaci. Implementace v JS je mírně odlišná, takže pokud chci, aby ty definice seděly na JS, musím je mírně upravit. Po takových drobných technicistních úpravách by článek platil i pro JS. Protože platí pro libovolnou implementaci async/await.
potom javascriptové async funkce nesplňují definici červených funkcí z toho článku.Jak jsi psal, ten článek je asi spíš o C#. Pokud bys chtěl, aby ji splňovaly i funkce z JS, stačí do definice doplnit "pokud chci z funkce dostat návratovou hodnotu":
Koukám třeba sem: https://golang.org/pkg/math/big/#pkg-examples - konkrétně u příkladu Fibonacci:Aha, to jsem zatím nepotřeboval, na běžné výpočty stačí float.

Tak to přece není, žárovka nevykonává žádné pokyny, pouze reaguje na "mám elektriku => svítím" a "nemám elektriku => nesvítím", tedy máte špatně model. Nebo máte chytrou žárovku, která pokyny přijímá a máte se tedy zaměřit na componentu, která ty pokyny posílá. Zase máte špatně model. ;-)A jak by vypadal správný model, když tam bude žárovka, "elektrika" (ta, o které mluvíš) a třeba vypínač?
to není pravda. Oba způsoby volání "červených funkcí" se používají, jak jsem ukázal výše.To je definice. Definice nemuze byt nepravdiva.
ten dekorátor říká, že pytest má tu async funkci spustit v asyncio event loopu. To je problém specifický pro python, kde neexistuje jednotný event loop. V jascriptových test frameworcích nic takového specifikovat nemusíš. V pytestu to můžeš spouštět ručně uvnitř obyčejných test casů, nemusíš používat async funkce.OMG.
Cili, abych byl opet zcela explicitni: jo, zkusil jsem to. A prave proto me to tak sere.
No je to opět otázka míry. Pokud někdo vymyslí v dnešní době jazyk, v němž jeden číselný typ sčítáme pomocí infixového operátoru a u druhého se musí použít funkce typu add() protože proto, je to IMO dost podivné, to se dá těžko okecat nějakou ortogonalitou, když trpí konzistence.To ale nemluvis o Go, ne? Nepamatuju se, ze bych potkal funkci add().
Jak rikam, Rust je mi sympatictejsi.A teď ses dopustil docela zajímavého faulu - jestliže někdo polévku přesolí, nedá to zapravdu někomu, kdo raději vůbec nesolí. Chybu udělali oba, pravdu měl někdo třetí, kdo solí akorát.Rozumim ti, ale neni to tak uplne faul. Dosolit se totiz da vzdycky, odsolit uz ne.
Zajímavé, jak se viralita vyskytuje v různých obměnách, kromě těch dvou zmíněných třeba u součtových závislostních typů, na to musí existovat nějaká matematická abstrakce.Jasne, https://en.wikipedia.org/wiki/Mathematical_modelling_of_infectious_disease
Já jsem si vždycky myslel, že Go je spíš snaha o evoluci C - něco jako Java, ale od lidí, kteří nesnášejí OOP, ale sdílejí názor, že jazyk má být "hloupý" (svazovat programátora v maximální snesitelné míře).Mimochodem, jeste k tomuhle, kdyz uz jsme beztak v offtopicu jako prase
Ta motivace neni uplne "svazovat programatora", ale spis zvolit jenom ty featury, ktere jsou navzajem ortogonalni. A zaroven jenom ty featury, na kterych se vsichni tri autori jednomyslne shodnou. Oboji mi prijde jako prevelice rozumny kriterium. A jestli Rust zacne nejak vyrazne bobtnat, tak jim da vyvoj za pravdu...Snad jsou k nalezení diskuse ohledně použití jiného podobného modelu. Nic moc rozumného jsem nenašel, pořád předpokládám, že základ je v tom, že to do filosofie a vnitřností Rustu nezapadá.Mne se podarilo najit dost dobry vysvetleni: https://users.rust-lang.org/t/goroutines-csp-in-rust-wasm32/28207/2
Tvé oblíbené slovo je teď “virální”?Opsal jsem ho od tebe, je to dobre vystizny a srozumitelny.
Když už jsme u té vitality, všimnul sis, že async/await je jen type lifting? Konkrétně T->Future<T>? A že to zobrazení je funktoriální? Nepřipomíná ti to něco?
jako haskellista poznáš, že vlastně jenom zbytečně zdlouhavě popisuje monády
Nevíš o nějakém jazyce/formalismu, kde by toto bylo ošetřené?To fakt nevim
už několikátá diskuze, ve které kritizuješ async/await. Zkus to nějaký čas používat a až potom hodnotit. Zrovna v Javascriptu to podle mě funguje docela dobře.1. To neni odpoved na zadnou z polozenych otazek. Ok, beru to tak, ze nemas zajem reagovat na to, co pisu. Cili nemas zajem o diskusi. Beru na vedomi.
@pytest.mark.asyncio
async def test_multiple_gateways(service_config, multiple_gateways_sim,
eso5_test1_mqtt, eos6_os_test1_mqtt,
etm3_test1_mqtt):
[...]