2026
Studium a uplatnění / Re:Praktická matematika
« kdy: 23. 09. 2017, 00:30:58 »O algoritmus nejde. Jde o styl.Pochybuju o tom, že na jakýmkoli kódu pod deset tisíc řádek můž být něco zásadního poznat.
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.
O algoritmus nejde. Jde o styl.Pochybuju o tom, že na jakýmkoli kódu pod deset tisíc řádek můž být něco zásadního poznat.
Jsem zvědavý na řešení od PrýmkaOde mě nic nečekej, já žádnej algoritmickej lumen nejsu. A už vůbec se nebudu prsit nějakým řešením tady veřejně
Myslím, že diskuse trochu ujela a je už o ničem. Nicméně někdy je dobré vědět, co se děje na pozadí,Já to vidím tak, že jsme právě teď dojeli k tomu nejpodstatnějšímu: že totiž abstrakce není znalost o tom, jaké věci jsou "doopravdy". Není to žádná ontologie. Neznat nějakou abstrakci neznamená, že nerozumím světu. Spíš je to o pohledu na svět - když vidím součty v Excelu, můžu za tím vidět grupy. Zásadní otázka ale je, jestli mi tenhle pohled něco konkrétního přináší.

představ si nějaký Extravurstprolog s predikáty vyšších řádů. Co můžeš očekávat, bude výpočet ekvivalentní prvořádovému Prologu nebo ne?Máš pocit, že právě tohle je problém, který by Běžný Franta Programátor denodenně řešil?! V praxi by řešil tak maximálně to, jestli Extravurstprolog používá dostatečný množství lidí, aby to bylo jakžtakž odladěný, stabilní a našel dost odpovědí na SO
Její práci nezlepší, když tomu bude říkat grupa, ale pracuje s grupou. A to je ta pointa - Pepa lepič může používat třeba katamorfismy, aniž by o tom věděl.Dobře, budiž. A co z toho plyne? Proč to říkáš?
Python má dostatečně pružný typový systém, ten to umožňuje. Stačí implementovat metodu __add__Ne, to neni pointa. Vidim, ze si nerozumime. Ale to nevadi, to se stava i v lepsi spolecnosti
To není zavádějící, před chvilkou jsi to tvrdil o flatMap. Analogie s účetní nefunguje, nikdo netvrdí, že uživatel funkcionálního programu dojde ke kategoriím.Nerozumel jsi mi. To tvoje "pouzivaji to, aniz by o tom vedeli" je zavadejici v tom, ze ctenari sugeruje myslenku, ze kdyby o tom vedeli, tak by se na jejich praci neco zasadne zmenilo. A to proste neni pravda.
doporučuji Diskrétní matematiku od Matouška a NešetřilaSouhlas, to je skvela kniha, ktera by mela byt pro informatiky povinnou cetbou

ale pokud vám to fyzik, který tu matematiku dobře zná, předem proseje a oddělí fyzikální zrno od matematických plev, dá se to pochopit.Presne's uderil hrebicek na hlavicku: pokud ucitel dobre vi, o cem mluvi, a zaroven vi, co budou studenti v praxi delat, a zaroven ma chut jim to vysvetlit tak, aby to co nejlip pochopili, tak to jde jak po masle.
No dobře tak tedy názorněji, typy řešit nemusím,Nechtel jsem to videt nazorneji, ja vim, co a jak to dela. Ale teprve az se zacne bavit o typech, dojdeme k tomu, ze vetsina "beznych" jazyku to takhle obecne neumoznuje - protoze proste nemaji dostatecne obecny typovy system. Takze to "nic na tom neni" plati jenom tehdy, kdyz plati "vrazim tam plus a ono uz se mi to nejak secte". On ten flatMap totiz muze fungovat treba i na funkcich urciteho typu a to uz by se ti v pythonu dost blbe ilustrovalo
Ze to jde na seznamech jednoduse, vime vsichni.Takhle to nejspíš myslel i Mirek, že člověk - když není zbytí - tak nějak samospásem dojde ke kategoriím a spol., aniž by o tom věděl.Obvykle zavadejici tvrzeni, na ktere odpovim obvyklym zpusobem: je to asi tak stejne pravdive jako tvrzeni, ze ucetni, ktera scita cisla v Excellu, dojde samospadem ke grupam, aniz by o tom vedela
FlatMap to je tedy věda :-)A jaky typ ma ten map, reduce a to +?
fl = reduce(lambda x,y: x + y, map(funct, list))
S type classes to nijak přímo nesouvisíPodle me to teda zatracene souvisi. Musis mit nejakej nastroj, kterym definujes, jake vlastnosti struktura musi mit, aby nad ni sel flatMap udelat. A tim nastrojem, ktery umozni kyzenou obecnost, jsou typeclasses
Bez nich muzes flatMap fakt jenom overloadovat. Nebo bys mohl pouzit interfaces, ale to bych to API asi ani videt nechtel
Tieto haskelizmy v jave nie su potrebne.Java stejny problem resi pomoci interfaces. Jestli je to horsi nebo lepsi reseni, o tom by se dalo hadat roky
Asi by bylo lepší citovat aspoň oficiální dokumentaci, internet je plný pochybných textů od ignorantů.Ale vzdyt to cituju prave jako ilustraci toho, jak si k tomu "normalni programator" dojde. Studiem CT to neni, sorry. A ani to neni nutny.
Nicméně pravda je, že ve Swiftu se flatMap implementuje zvlášť, protože nemá higher-kinded types, pročež to v něm vůbec nejde genericky (zatím).No dyt. To je moje pointa. "Normalni programator" to ve zcela abstraktni rovine nepotrebuje chapat, protoze jeho jazyk mu to stejne ve zcela abstraktni rovine neumoznuje pouzit. On ma proste k dispozici implementaci pro konkretni instance, typicky jenom pro jednu (seznam) a kdyz se zadari, tak to ma *overloaded* i pro neco jinyho

Já myslel flatMap ve Swiftu, kde jde o obecný koncept používaný ve standardní knihovně pro mnoho tříd, nejen seznamy.Swift neznám, takže to neumím fundovaně komentovat. Ale jak tak zběžně koukám, stejně "normální programátor" jde tou cestou, o které jsem psal - od listu se odpíchne dál. A to odpíchnutí je v "programátorských pojmech":
In other words, flatMap is specifically overloaded to deal with Optionals. It will take an array of optionals and return an array of unwrapped optionals without any nils.https://www.natashatherobot.com/swift-2-flatmap/

Měj se, dík za diskusi.
hyeroglyfySorry za grammar nazi poznámku, ale "hieroglyfy" je od řeckého "svaté písmo", proto měkké i v ἱερός. Stejně tak "hierarchie". S tvrdým y to trhá oči...
Když si teď na papír napíšeš obecný flatMap fungující se všemi typy (které poskytují flatten a fmap, přičemž nic jiného o nich nevíš), takže už jsi hodně hluboko v abstraktní algebře (a když si to nakreslíš, abys pochopil vztahy, dostaneš kom. diagram). KT vlastně jen poskytuje terminologii - když už znáš flatMap a flatten a další šaškárny, tak ti dá úvod do KT jen matematické termíny, žádné další poznatky. Lidi v tom většinou nevidí přínos, protože se abstrahuje od všeho konkrétního. Ale i jen standardizovaná terminologie je hodně šikovná věc.No jo, to máš sice pravdu, ale takhle to funguje víceméně jenom v Haskellu
V míň "akademicky čístých" jazycích neřešíš obecný flatMap, ale flatMap, který funguje víceméně jenom nad seznamy. Čili to primární, co tě zajímá, je konkrétní instance, která je triviální (mapem dostanu seznam seznamů a ten flattenuju - pochopí úplně každej).