Citace od: klokan kdy 09. 04. 2018, 21:56:58M. Prýmek má v tomto případě pravdu.Citace od: Mirek Prýmek kdy 09. 04. 2018, 20:48:10Citace od: klokan kdy 09. 04. 2018, 20:43:29Jak's na to přišel?! Ještě pořád to není jasný?
Takže omluvu dlužíš spíš ty mě. Šup šup
Vám dvěma asi ne. Ještě jednou a pečlivěji si přečtěte, co jsem psal, vizCitace od: klokan kdy 02. 04. 2018, 06:39:38
V Haskellu se operátor bind (>>=) deklaruje následovně:
(>>=):: Monad m => m a → (a → m b) → m b
Zde lze prohlédnout všech příspěvky uživatele. Jsou zde vidět pouze příspěvky z oblastí, do kterých máte přístup.
#1
Vývoj / Re:Vyšší typy
09. 04. 2018, 22:02:18 #2
Vývoj / Re:Programovanie a modne trendy?
30. 08. 2017, 13:52:12Citace od: v kdy 30. 08. 2017, 13:25:03Od kdy ne?Citace od: Aoidhghean kdy 30. 08. 2017, 12:36:25no a ne každá šablona (s jedním parametrem) je kovariantní funktor
Přesně, jde o kovariantní funktory.
#3
Vývoj / Re:Dobré IDE pro Python a Java (případně jaký další jazyk zvolit?)
23. 08. 2017, 22:05:46Citace od: Honza kdy 22. 08. 2017, 18:56:52Dost často stačí použít něco jiného než Javu, každý rozumný jazyk má hodnotové typy, čímž se obejde indirekce (největší problém Javy, jejž nebyli dodnes schopni vyřešit).
V odkazované prezentaci se ale o nutnosti opuštění OOP nikde nepíše. Pouze o reorganizaci dat před spuštěním konkrétního algoritmu. Správné seřazení dat samozřejmě může zvýšit výkon, o tom žádná.
#4
Vývoj / Re:Frustrace ze stavu mainstreamových programovacích jazyků
21. 08. 2017, 13:05:12Citace od: Mirek Prýmek kdy 20. 08. 2017, 17:42:36Používá se to pro uklízení gorutin, když 3rd party kód zpanikaří (třeba na blbém out of index, nepřípustném přetypování nebo něco takového), runtime zlikviduje tuto jednu padlou gorutinu a jde-li třeba o obsluhu http požadavku, musí knihovna po sobě uklidit.Citace od: zboj kdy 20. 08. 2017, 17:06:42Aha, na to jsem ještě nenarazil
panic/recover (jen jinak pojmenované výjimky)Na první pohled to nevypadá úplně blbě, problém je, že se to nikde nepoužívá - všude jsou ty explicitní návratový kódy.
#5
Vývoj / Re:Frustrace ze stavu mainstreamových programovacích jazyků
20. 08. 2017, 17:06:42Citace od: Mirek Prýmek kdy 20. 08. 2017, 17:00:19panic/recover (jen jinak pojmenované výjimky)Citace od: zboj kdy 20. 08. 2017, 16:48:07Kde/jaky?
Výjimky tam jsou.
#6
Vývoj / Re:Frustrace ze stavu mainstreamových programovacích jazyků
20. 08. 2017, 16:48:07Citace od: Mirek Prýmek kdy 20. 08. 2017, 16:15:18Výjimky tam jsou. Ta generika jsou jiná otázka, je fakt, že pro někoho z FP může být jejich absence bolestná, ale jakmile se člověk naučí používat správně ta jejich rozhraní, tak se bez nich dá obejít.Citace od: zboj kdy 20. 08. 2017, 13:44:05Na Go jsem právě myslel, když jsem to psal. Ten jejich error handling mě fakt otravuje. Neexistence výjimek a generik mě osobně na Go vysírá nejvíc.
Tohle je trochu problém Go
#7
Vývoj / Re:Frustrace ze stavu mainstreamových programovacích jazyků
20. 08. 2017, 13:44:05Citace od: Mirek Prýmek kdy 20. 08. 2017, 12:58:50Tohle je trochu problém Go (až na OoM, to panikaří vždy v knihovně), protože výjimky (ve smyslu longjmp) sice má, ale kód z toho elegantní neleze. Proto třeba ve Swiftu přepsali knihovny tak, aby se daly používat stylem "do {try ...} catch {...}"s tím, že lze použít rethrow. Na ošetření chyb jsou ale stejně pořád nejlepší monádyCitace od: Kiwi kdy 20. 08. 2017, 10:59:43Kdybys měl opravdu na každém místě řešit úplně všechny chybové stavy, ke kterým může dojít (včetně lowlevel věcí jako např. "out of memory" apod.), tak v té změti checkování bude ten samotný algoritmus jako jehla v kupce sena.
Způsobuje separaci místa vzniku chyby od místa jejího zpracování, a to i vertikálně, přes úrovně jednotlivých vrstev, což je IMO zlo. [...] A tak se na to kašle, nechá se to zpropagovat až kdo ví kam a tam se teprve chyba řeší. Jenže takové místo je z hlediska struktury, tj. viditelnosti a rozsahu platnosti jednotlivých entit, izolované od místa vzniku. Vlastně už se tam nedá dělat nic, než jen vzít na vědomí, že "někde dole" vznikla chyba
#8
Vývoj / Re:Faktorizace vyčíslitelných funkcí v Hasku
14. 08. 2017, 01:25:12Citace od: Mirek Prýmek kdy 13. 08. 2017, 23:51:51Ono to je vlastně intuitivně jednoduché a v KT to jen zní nabubřele.Citace od: zboj kdy 13. 08. 2017, 22:27:24Ok, díky, to už mi trochu začíná dávat smysl.
Hask se může brát jako prostě nějaká obecná kartézsky uzavřená kategorie s morfismy jako vyjádřitelnými funkcemi (bez ohledu na vyčíslitelnost, on i takový halting problém je při vhodné restrikci rozhodnutelný, zrovna před rokem jsem o tom viděl hezkou přednášku na Oxfordu, ale to odbočuju). Rozklad morfismu je předpoklad pro to tvrzení, čili například f.g.h (wlog stačí uvažovat binární rozklad). Když si ho zadáš jako f.id, tak klidně můžeš, jen to pak je poměrně triviální. To tvrzení říká, že můžu jít jinou cestou (přes jiné objekty dané kategorie), přičemž ty morfismy na alternativní cestě jsou restrikcemi těch původních a když vyberu epimorfismy, tak budou vyčíslitelné, je-li jejich kompozice taktéž.
#9
Vývoj / Re:Faktorizace vyčíslitelných funkcí v Hasku
13. 08. 2017, 22:27:24Citace od: Mirek Prýmek kdy 13. 08. 2017, 21:25:47Hask se může brát jako prostě nějaká obecná kartézsky uzavřená kategorie s morfismy jako vyjádřitelnými funkcemi (bez ohledu na vyčíslitelnost, on i takový halting problém je při vhodné restrikci rozhodnutelný, zrovna před rokem jsem o tom viděl hezkou přednášku na Oxfordu, ale to odbočuju). Rozklad morfismu je předpoklad pro to tvrzení, čili například f.g.h (wlog stačí uvažovat binární rozklad). Když si ho zadáš jako f.id, tak klidně můžeš, jen to pak je poměrně triviální. To tvrzení říká, že můžu jít jinou cestou (přes jiné objekty dané kategorie), přičemž ty morfismy na alternativní cestě jsou restrikcemi těch původních a když vyberu epimorfismy, tak budou vyčíslitelné, je-li jejich kompozice taktéž. Využitelné je to spíš naopak, když se mi podaří faktorizovat nějakou složitější funkci a dokázat, že příslušné epimorfismy nejsou vyčíslitelné (aspoň jeden), tak kompozice je v pytli a nic s tím neudělám. Většinou se hledá nějaký bottleneck v algoritmu, kde se provede faktorizace zaručující restrikci s vyčíslitelností (třeba v parsingu přirozených jazyků se omezujucící podmínky převádějí na algebru rysů (feature algebra), nad kterou se pak řeší word problem pro ukázání bezespornosti; dá-li si daný model vyjádřit jako třeba polycyklická grupa, tak dostanu faktorizaci, jejíž druhá komponenta je vyčíslitelná, byť obecně je word problem nerozhodnutelný).Citace od: zboj kdy 13. 08. 2017, 21:14:09To's mi to teda pořád moc neosvětlil
Ta otázka je nepřesná, zřejmě jde o to, že když mám vyčíslitelný morfismus a nějaký jeho rozklad, tak z něj vždy dostanu takový rozklad, kde každá komponenta je restrikcí nějaké dané a zároveň vyčíslitelná, protože můžu vždy jít přes epimorfismy. Existence je zaručená, protože všechny morfismy jsou totální funkce. Důkaz je přes komutativní diagramy celkem názorný (byť ne zcela triviální)."Vyčíslitelný morfismus" je co? Pokud se bavíme o Hasku, jsou morfismy funkce a vyčíslitelné jsou z definice (Hask iirc neobsahuje bottom).
"Rozklad morfismu" znamená co? Rozklad nějaké množiny, nebo to, že f můžu vyjádřit jako složení nějakého g a h? (proto jsem se ptal, jestli jedno z toho může být id)
A je tenhle fakt nějak využitelný, má nějaké praktické důsledky?
#10
Vývoj / Re:Faktorizace vyčíslitelných funkcí v Hasku
13. 08. 2017, 21:14:09Citace od: Mirek Prýmek kdy 13. 08. 2017, 19:48:45Ta otázka je nepřesná, zřejmě jde o to, že když mám vyčíslitelný morfismus a nějaký jeho rozklad, tak z něj vždy dostanu takový rozklad, kde každá komponenta je restrikcí nějaké dané a zároveň vyčíslitelná, protože můžu vždy jít přes epimorfismy. Existence je zaručená, protože všechny morfismy jsou totální funkce. Důkaz je přes komutativní diagramy celkem názorný (byť ne zcela triviální).Citace od: desprit kdy 13. 08. 2017, 19:05:37Mohl bys mi jako čtyřletýmu dítěti vysvětlit, co tím myslíš? Není mi moc jasný pojem "vyčíslitelný morfismus", ani "rozložit", ani "komponent".
Dá se dokázat, že každý vyčíslitelný morfismus se dá rozložit na vyčíslitelné komponenty?
Mám-li f: X -> Y, je f . id "rozložení na komponenty" nebo ne?Citace od: desprit kdy 13. 08. 2017, 19:05:37Kde přesně?
Nedávno tu zaznělo, že ne
#11
Vývoj / Re:Funkcionální programování a mainstream
25. 07. 2017, 21:01:38Citace od: ded.kenedy kdy 25. 07. 2017, 19:24:54Že nechápeš souvislosti neznamená, že neexistují, jen že takové knihy nejsou pro tupé lopaty.CitaceTo je hodně přiblblá analogie hodná trola.Ze o necem existuje kniha, opravdu nic nedoklada.
#12
Vývoj / Re:Funkcionální programování a mainstream
25. 07. 2017, 17:13:58Citace od: Ondra Satai Nekola kdy 25. 07. 2017, 16:41:35To je hodně přiblblá analogie hodná trola. Navíc nejde o nepostradatelnost, "jen" užitečnost.Citace od: zboj kdy 25. 07. 2017, 16:29:14A existence knihy o krestanstvi v manzelstvi je dukazem nepostradatelnosti krestanstvi v manzelstvi?Citace od: ded.kenedy kdy 25. 07. 2017, 16:04:35Jasně, a právě proto máme knížky jako Category theory for computing science apod.CitaceKolik jich třeba ví, co to je katamorfismus, nemluvě o to, aby věděli, jak jim může pomoci zkrátit kód a překladači pomoci s optimalizací odstraněním rekurze?
Znalost teorie kategorii je pro funkcionalni programovani zhruba stejne dulezita, jako je dulezita znalost teorie grup pro vypocet ucetni uzaverky.
#13
Vývoj / Re:Funkcionální programování a mainstream
25. 07. 2017, 16:29:14Citace od: ded.kenedy kdy 25. 07. 2017, 16:04:35Jasně, a právě proto máme knížky jako Category theory for computing science apod.CitaceKolik jich třeba ví, co to je katamorfismus, nemluvě o to, aby věděli, jak jim může pomoci zkrátit kód a překladači pomoci s optimalizací odstraněním rekurze?
Znalost teorie kategorii je pro funkcionalni programovani zhruba stejne dulezita, jako je dulezita znalost teorie grup pro vypocet ucetni uzaverky.
#14
Studium a uplatnění / Re:Jak se dožít důchodu?
24. 07. 2017, 22:46:18Citace od: Petr kdy 24. 07. 2017, 22:42:37Dělat vývoj nebo něco podobného kreativního.
Je mi 37, zatím práci programátora zvládám ale bojuji s čím dál tím větší nechutí učit se další a další framework. Tak mě napadlo, tu práci bych měl dělat ještě 30 let!
Máte už plán co dělat, když Vám bude třeba 45 a prostě přestanete dávat tu vývojářskou práci? QA? Analýzu? Databáze? Administrátora? Učit nebo úplně z IT jít prodávat preclíky nebo uklízet na nádraží?
#15
Odkladiště / Re:Proč se o programátorech říká, že jsou to moděrní dělníci?
24. 07. 2017, 14:44:12Citace od: jpu kdy 24. 07. 2017, 14:26:46Spíše tu je hodně debilů, co jsou schopni napsat kreténismus jako "kdyby jsi se" apod. Pokud už chce něco takového mermomocí programovat, bylo by nejlepší začít grammar checkerem pro vlastní použití
este by bolo vhodne napisat, kolko prispievatelov na roote robi vysokoodbornu pracu, nevyuziva nic vymyslene, vsetko si robia sami, alebo tu robia len ramena, pritom su to normalni programatori, ale len frustrovani. To by sme ostali naozaj prekvapeni.
Ale tu asi kazdy riesi fourierove transformacie, gramatiky, pise si vlastne kompilatory, spracovava signaly a vymysla nove algoritmy, sme predsa na roooooote