421
Vývoj / Re:Ověření pravidel pro funktory
« kdy: 04. 03. 2022, 14:54:13 »samotné podmínky funktoru nejsou nijak složité a není důvod v nich knihovnám nevěřit

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.
samotné podmínky funktoru nejsou nijak složité a není důvod v nich knihovnám nevěřit

na papíře to fungovalo (u zkoušky) - v počítači neAspoň něco
člověk, co umí jeden nebo dva jazyky a je ztracenej, když přijde ke třetímu, není programátor.Co když umí PHP a JS a pak přijde k Haskellu?
Ve v2 ten kód nefunguje, potřebná úprava je:Kód: [Vybrat]Instanci vektoru lze načíst například za běhu ze vstupu pomocí readVect.data Vect : Type -> Nat -> Type where
Nil : Vect _ 0
Cons : a -> Vect a n -> Vect a (n+1)
length : Vect a n -> Nat
length {n} _ = n
Lze vyzkoušet zde: https://learn-idris.net/play
length : {n : Nat} -> Vect a n -> Nat
length _ = n
Tady je vidět ještě lépe, jak fungují tzv. implicitní argumenty.
Ten kód výše ukazuje, jak se to řeší v případě type erasure. V backendu pro C nebo JS je krásně vidět, jak všechny typy zmizí.No právě.úplně stejně, jako k jiným generickým parametrůmK těm to v případě type erasure za běhu nejde vůbec.
data Vect : Type -> Nat -> Type where
Nil : Vect _ 0
Cons : a -> Vect a n -> Vect a (n+1)
length : Vect a n -> Nat
length {n} _ = n
Instanci vektoru lze načíst například za běhu ze vstupu pomocí readVect.úplně stejně, jako k jiným generickým parametrůmK těm to v případě type erasure za běhu nejde vůbec.
Jakoze Rust je rychlejsi nez C++Pokud někdo, kdo píše v JS (případně TS), přepíše svůj kód do C++, tak to bude dost hnůj. V Rustu mu překladač nedovolí tolik prasit.
- místo řešení rozhraní a tříd jako typových omezení, se používá forall, který je sice matematicky čistější, ale programátorsky neintuitivníTeď jsem zrovna na tento “problém” narazil při psaní kódu. Tak jen dodám, že v jazyce s GADT se ten neintuitivní forall v existenčním významu používat nemusí, v GADT to jde stejně bez nepříjemných syntaktických konstrukcí.
Je možné, že ten odhad je špatný, žádnou statistiku k tomu nemám. Nicméně tento styl úloh oddělí zrno od lopatExistují nějaké tipy / triky jak tento logický / algoritmický styl myšlení vylepšit?Jak říkal jeden pán: učit se, učit se, učit se. Kromě nějaké té teorie hlavně procvičovat, ne triviální blbosti, ale něco jako tohle: https://github.com/AYLIEN/technical_challenge (to je tak 5 minut rozmyšlení a pak 10 minut implementace). Ten styl úloh se docela opakuje, po určité době už člověka nic nepřekvapí.
https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3
Asi bych trochu polemizoval s temi 5+10 minutami. Viz ta procenta.
a především otevírá prostor k zajímavé diskusi nad řešením, paradigmaty apod.
Existují nějaké tipy / triky jak tento logický / algoritmický styl myšlení vylepšit?Jak říkal jeden pán: učit se, učit se, učit se. Kromě nějaké té teorie hlavně procvičovat, ne triviální blbosti, ale něco jako tohle: https://github.com/AYLIEN/technical_challenge (to je tak 5 minut rozmyšlení a pak 10 minut implementace). Ten styl úloh se docela opakuje, po určité době už člověka nic nepřekvapí.
pry ten svuj uzasny produkt napsali v TypeScriptu, ale zjistili, ze je to prilis pomaleCopak asi zjistili pro přepsání do C++a museli to zacit prepisovat do C++
Že je to pomalé a musí to přepsat do Rustu?
U nás na podobné zadání jeden ekšpert zcela vážně tvrdil, že by si na to natrénoval neuronku. Taky odpověďPřekrývání se obdélníků v základní poloze je vcelku trivialita, na kterou člověk ani nemusí být programátor.prvni bych zacal zda se protnou opsane kruznice.
Zajímavé zpestření té úlohy by byla možnost libovolného pootočení těch obdélníků.
pak je kazda straba cast primky, takze test na protnuti primek v danych intervalech.
se Svycarskem jsem mel vetsi stesti.Tam stačí většinou jen rétorománština
Zedník nebo turistický průvodce většinou nepracuje z domu. Navíc je rozdíl mezi poskytováním služeb koncovým zákazníkům a firmám. Vývoj SW z pohodlí domova v ČR (nebo kanclu/coworkingu) je naprosto v pořádku.není legální pracovat 100 % pro zahraničí s českou živností.
Mohl byste upřesnit proč?
https://www.mpo.cz/cz/zahranicni-obchod/podnikani-v-eu/vnitrni-trh-eu/volny-pohyb-sluzeb/preshranicni-poskytovani-sluzeb---osvc--67768/CitaceV praxi to znamená, že těžiště zájmů OSVČ musí nadále zůstat v ČR a své služby může poskytovat pouze jednorázově a nepravidelně. Tak český kadeřník nemůže každý pátek dojíždět k zákaznicím do Polska, ale tesař z Plzně může přijmout zakázku v Německu, která bude vyžadovat půl roku práce. Situaci je třeba posuzovat případ od případu, zejména s ohledem na frekvenci, pravidelnost, délku trvání a nepřetržitost aktivity; nezbytnou podmínkou je, aby daná služba byla poskytována také v ČR.
Hromadě lidem to prochází, protože na ně úřady nepřišly, to ale neznamená, že to není práce za hranou zákona.