Fórum Root.cz
Práce => Studium a uplatnění => Téma založeno: Altruista 12. 04. 2016, 09:40:33
-
Pekny den,
rad by som si urobil taky prieskum, alebo skor sa popytal a nabral inspiraciu, ze ako si rozsirujete svoje vedomosti v oblasti IT, hlavne programovanie. Knihy, video tutorialy, projekty? Co by podla vas mal ovladat kazdy vyvojar, ake knizky by mal vlastnit, resp. mal mat precitane, bezohladu na to, ci je JAVA/C#/C++ vyvojar.
Budem rad za konstruktivnu debatu :)
-
Hlavně knihy. Doporučit se jich dá hodně, abych byl konkrétní, tak doporučuji něco o funkcionálním programování, protože právě toto paradigma začíná pronikat i do mainstreamových jazyků. Pro hlubší vhled do problematiky je dobré přečíst si něco o teorii typů, protože úzce souvisí s OOP, což je stále nejpoužívanější paradigma, ale prakticky orientované knihy budou asi pro většinu programátorů užitečnější.
-
Pekny den,
rad by som si urobil taky prieskum, alebo skor sa popytal a nabral inspiraciu, ze ako si rozsirujete svoje vedomosti v oblasti IT, hlavne programovanie. Knihy, video tutorialy, projekty? Co by podla vas mal ovladat kazdy vyvojar, ake knizky by mal vlastnit, resp. mal mat precitane, bezohladu na to, ci je JAVA/C#/C++ vyvojar.
Budem rad za konstruktivnu debatu :)
Tak kazdemu vyhovuje neco jineho. Ja osobne preferuji knizky a zajimave clanky dostupne na internetu. Dale rad sleduji zaznamy (pripadne se ucastnim) konferenci zamerenych na IT. Nemyslim si ze existuje nejaka povina cetba, samozrejme jsou knizky ktere se daji doporucit vsem programatorum, ale ja sam je necetl takze asi tak :)
-
A co povazujete za dolezite, co by mal kazdy programator ovladat, alebo aby sa lisil od inych, bol lepsi.
-
A co povazujete za dolezite, co by mal kazdy programator ovladat, alebo aby sa lisil od inych, bol lepsi.
Formální aparát za tím, co se v programování používá, čili například formální logika, teorie kategorií, relační algebra apod., podle konkrétní oblasti (po řadě pravidly řízené systémy, funkcionální programování, databáze). A obecně - bez ohledu na konkrétní jazyk nebo technologii - vyčíslitelnost a teorie rekurze. Všechno to je o detailech, algoritmus v Javě nebo Basicu sesmolí i začátečník, ale jakmile jde například o efektivitu, optimalizaci a spoustu dalších detailů, jsou nezbytné hlubší - teoretické - znalosti, jejichž akvizice je na celý (profesní) život. Při volbě vhodných materiálů to ale může být i zábava.
-
A co povazujete za dolezite, co by mal kazdy programator ovladat, alebo aby sa lisil od inych, bol lepsi.
Co povazujem ja za dolezite, co by mal kazdy programator ovladat? Urcite je dolezite to, aby bol otvoreny vsetkemu, co sa okolo neho objavi. Ziadne silacke kecy typu "javabugscript", "funkcionalne programovanie je nepouzitelny shit", "OOP je bastl" a podobne nesmu mat v slovniku dobreho programatora miesto.
Ak uz chcem technologiu odsudit, tak nech mam s nou najprv dostatok skusenosti, aby som vedel, ze je pre mna naozaj nepouzitelna. Pretoze mnoho veci sa da navzajom kombinovat a aj to co bolo pred rokmi pomale a neohybne, moze byt dnes rychle a flexibilne.
-
rad by som si urobil taky prieskum, alebo skor sa popytal a nabral inspiraciu, ze ako si rozsirujete svoje vedomosti v oblasti IT, hlavne programovanie. Knihy, video tutorialy, projekty?
Na knizky uz ted nemám bohužel moc čas, takže spíš kvalitní blogy a ty videa.
Imho úplně nejlepší rozšíření obzorů pro programátora je seznámit se s nějakým jazykem hodně odlišným od toho, co normálně používám. Každý by si imho měl vyzkoušet co nejvíc (tj. tolik, kolik může) minimálně z:
- logické programování - Prolog nebo aspoň Datalog
- konkurentní programování - Erlang, Elixir, Akka - nejlíp Elixir
- čisté funkcionální programování - Haskell, Elm - Elm bych hodně doporučil, pro seznámení fakt parádní
- plnotučné OOP - SmallTalk, Objective C, Swift (?)
- nějaký hodně moderní mulitparadigmatický jazyk - Rust? Nevím
Plus není k zahození se pro rozšíření obzorů ponořit do nějaké domény, se kterou normálně nedělám - třeba embedded pro mě je z několika důvodů docela poučná zkušenost :)
...a taky bych docela doporučil zkusit si naimplementovat něco, co normálně používám jako knihovnu a používá to netriviální koncepty a není to rutina, abych líp pochopil, jak to funguje. Třeba zkusit si v jazyku, který umím, naimplementovat RPC od píky, to pro mě taky byla docela fajn zkušenost. Určitě ne dělat třeba e-shop, to je rutina.
Pokud možno hledat něco, co řeší nějakou moji potřebu, co se dá zveřejnit a budu z toho mít radost, že jsem to vyřešil.
-
cize myslite si, ze sa oplati studovat aj matematicke veci? Zas nepatrim medzi nejakych super matematikov :)
-
cize myslite si, ze sa oplati studovat aj matematicke veci? Zas nepatrim medzi nejakych super matematikov :)
Určitě ty, které mají přímou souvislost s něčím v IT (teorie kategorií, relační algebra...). Neuškodí přečíst si i něco bez přímé souvislosti, přece jen to pomáhá budovat abstraktní myšlení, ale to už závisí na volném čase a hlavně jistém matematickém nadání. Některé aspekty teorie množin například pomůžou pochopit (resp. bez jejich znalosti nelze pochopit) některé vlastnosti sémantiky (souvislost napřed. s Prologem), abstraktní algebra úzce souvisí s formální logikou (opět Prolog, případně databáze a deklarativní programování), ale jak říkám, to už jsou pokročilé věci, bez nichž se dá při bežné práci obejít, vyčíslitelnost bude o dost důležitější.
-
cize myslite si, ze sa oplati studovat aj matematicke veci? Zas nepatrim medzi nejakych super matematikov :)
Podle mě má smysl jít po krocích postupně třeba takhle:
- studovat tu matiku, která se v IT bezprostředně používá (hlavně diskrétní mat., kombinatorika, základy teorie grafů apod.)
- úplné minimum teoretické informatiky (jenom aby člověk vědel, v čem je zásadní rozdíl mezi regulárním a bezkontextovým jazykem a jak s tím souvisí konečný a zásobníkový automat - bez důkazů, bez přehnaného babrání ve formalismech, ale s důrazem na to, abych chápal praktické důsledky)
Tohle jako teoretický základ běžnému programátorovi stačí. Jakmile to mám, tak:
- vrhnout na praktické programátorské věci, který jsem psal výš. Teprve až tohle všechno mám, tak:
- zkusit další věci, které už nejsou přímo uplatnitelné, ale jsou super pro širší přehled (to jsou ty věci, který psal zboj) - to už je ale spíš pro zábavu a potěšení, žádný bezprostřední užitek z toho mít nebudeš. Tak je potřeba k tomu přistupovat, aby z toho člověk neměl depresi ;)
-
mam z toho pocit, ze to vsetko, co tu pisete, nemozem ani za zivot stihnut :D
-
mam z toho pocit, ze to vsetko, co tu pisete, nemozem ani za zivot stihnut :D
Urcite. Jakakoliv z tech veci se da pouzit jako napln celozivotni prace na univerzite a vetsinu z toho nejspis muze clovek zkoumat tak hluboce, ze bude jeden z deseti lidi na svete, kteri tomu rozumi stejne dobre ;)
Prave proto clovek nesmi moc zabredavat do detailu a musi se smirit s tim, ze vsechno z toho bude znat jenom trochu. Idealni samozrejme je, kdyz ma k dispozici ucitele/mentora/starsiho kolegu, ktery mu to bud predzvyka, nebo aspon doporuci, co a do jake hloubky ma smysl zkoumat.
Dobrej priklad je myslim ta teorie kategorii - muzes o tom cist stohy knih a nikdy neskoncis. Pro vetsinu lidi nema nejmensi smysl to delat. Lepsi je sehnat si dobre napsany clanek/mensi knizku, ktera to vysvetli na prave takove urovni a takovym stylem, ktery ti bude sedet. Ja jsem treba dlouho hledal, nic mi neprislo tak akorat, uz jsem to chtel vzdat, az jsem se dostal k tomuhle: http://www1.eafit.edu.co/asr/pubs/others/cain-screen.pdf -- a hle, veci, jejichz prinos jsem z jinych textu nepochopil (protoze tolik casu na to nemam), jsem najednou (na mne-dostatecne urovni) nahlidl za cca tyden...
-
mam z toho pocit, ze to vsetko, co tu pisete, nemozem ani za zivot stihnut :D
Proč? Vždyť stačí nějakou knížku (řekněme úvod do teorie kategorií nebo něco o logice) při prvním čtení jen proletět, člověk získá základní přehled a když tak projde více knih, zjistí, kde se překrývají a co číst znovu podrobněji. Některé důkazy může člověk klidně přeskakovat (mnohé je ale dobré projít a hlavně pochopit, protože jen potom se zjistí, co jak proč funguje) a věnovat více času třeba cvičením.
-
Jeste P.S. k tomu, co jsem napsal: ten teoretickej zaklad a prakticke zkouseni novych paradigmat nemusi nasledovat po sobe. Da se to klidne delat paralelne, podle toho, na co mam zrovna chut. Dulezity je imho mit z toho radost a poteseni, jinak clovek brzo vyhori a neda mu to vubec nic, coz je nejhorsi mozna varianta.
Některé důkazy může člověk klidně přeskakovat (mnohé je ale dobré projít a hlavně pochopit, protože jen potom se zjistí, co jak proč funguje) a věnovat více času třeba cvičením.
Dost dulezity taky je, jestli se bavime o cloveku, ktery pracuje, nebo o studentovi. Pracujici programator vetsinou nema cas ani chut si delat nejaka cviceni. Potrebuje najit cestu, kde je pomer vlozene usili/ziskany efekt nejaky rozumny. Jenom tak si procitat nejake dukazy a delat si cviceni muzou tak maximalne lidi bez rodiny nebo zamestnanci research oddeleni. Normalni smrtelnik na to cas nema.
-
Jeste P.S. k tomu, co jsem napsal: ten teoretickej zaklad a prakticke zkouseni novych paradigmat nemusi nasledovat po sobe. Da se to klidne delat paralelne, podle toho, na co mam zrovna chut. Dulezity je imho mit z toho radost a poteseni, jinak clovek brzo vyhori a neda mu to vubec nic, coz je nejhorsi mozna varianta.
Některé důkazy může člověk klidně přeskakovat (mnohé je ale dobré projít a hlavně pochopit, protože jen potom se zjistí, co jak proč funguje) a věnovat více času třeba cvičením.
Dost dulezity taky je, jestli se bavime o cloveku, ktery pracuje, nebo o studentovi. Pracujici programator vetsinou nema cas ani chut si delat nejaka cviceni. Potrebuje najit cestu, kde je pomer vlozene usili/ziskany efekt nejaky rozumny. Jenom tak si procitat nejake dukazy a delat si cviceni muzou tak maximalne lidi bez rodiny nebo zamestnanci research oddeleni. Normalni smrtelnik na to cas nema.
Jsou důkazy, které by byl "hřích" přeskočit (člověk by o hodně přišel), v logice třeba vybudování kanonické struktury (ve větách o úplnosti). Ovšem takových přínosných důkazů bude - troufám si tvrdit - menšina.
-
Jsou důkazy, které by byl "hřích" přeskočit
Jenze pracujici clovek s rodinou ma ponekud sirsi priority. Zly jazyk by mohl argumentovat tim, ze nevidet deti vyrustat a misto toho si cist dukazy, by byl hrich do nebe volajici...
-
mam z toho pocit, ze to vsetko, co tu pisete, nemozem ani za zivot stihnut :D
Jinak teď tě možná zaskočím nebo naštvu, nebo nedejbože odradím, ale poměrně užitečná mi přijde analytická filosofie (ovšem pochopitelně jen nějaký lehčí úvod, ne tisícistránkové bichle s plky o ničem), protože právě analytická filosofie má mnoho styčných bodů s teoretickými aspekty IT a mnozí akademici, co nějak zásadně přispěli k rozvoji oboru, byli (původně, tj. vzděláním) filozofé, např. Robinson.
-
Jsou důkazy, které by byl "hřích" přeskočit
Jenze pracujici clovek s rodinou ma ponekud sirsi priority. Zly jazyk by mohl argumentovat tim, ze nevidet deti vyrustat a misto toho si cist dukazy, by byl hrich do nebe volajici...
Tak pak je ale lepší se nějaké hlubší sebevzdělávání vykašlat úplně...
-
Tak pak je ale lepší se nějaké hlubší sebevzdělávání vykašlat úplně...
Nesouhlasim. U vzdelani myslim plati, ze cokoliv je doma, to se pocita. I kdyz to bude malo a bude to melke, je to lepsi nez nic.
EDIT: jo sorry, prehledl jsem "hlubsi" - no to asi jo, pokud "hlubsim" myslime stovky a tisice hodin sedet nad necim, co ma pouzitelnost v mlze :)
-
Tak pak je ale lepší se nějaké hlubší sebevzdělávání vykašlat úplně...
Nesouhlasim. U vzdelani myslim plati, ze cokoliv je doma, to se pocita. I kdyz to bude malo a bude to melke, je to lepsi nez nic.
EDIT: jo sorry, prehledl jsem "hlubsi" - no to asi jo, pokud "hlubsim" myslime stovky a tisice hodin sedet nad necim, co ma pouzitelnost v mlze :)
Jo, ale pro těch pár důležitých důkazů stačí max. desítky hodin.
-
Rodinu este nemam, ale som pracujuci a nakolko robim v praci s novou technologiou, tak sa musim vzdelavat aj v tom. Samozrejme, ak budem mat rodinu v buducnosti, dolezite bude sa jej venovat na plny uvazok. Myslim si ale, ze do hlbky netreba ist, dolezite je mat aspon ako take ponatie.
-
Rodinu este nemam, ale som pracujuci a nakolko robim v praci s novou technologiou, tak sa musim vzdelavat aj v tom. Samozrejme, ak budem mat rodinu v buducnosti, dolezite bude sa jej venovat na plny uvazok. Myslim si ale, ze do hlbky netreba ist, dolezite je mat aspon ako take ponatie.
Tak směle do toho ;) V podstatě jde hlavně o osobní preference a vnitřní motivaci.
-
Já si hodně "čtu" ve zdrojácích projektů, co mě zajímají (psané v Javě/C/C++), díky čemuž pak mám ponětí o tom, jak se různé složité problémy řeší v opravdových projektech. Čas od času pak mám takovou mánii, že mě třeba zajímá, jak se řeší v herních enginech to a to a strávím XY hodin tím, že pročítám různý akademický dokumenty (v poslední době mě třeba zajímalo efektivní vykreslování terénu v open world hrách - dozvěděl jsem se díky tomu např. o struktuře quadtree, jaké algoritmy se v dnešní době používají (chunked LOD, geomipmapping, implementace na GPU,...). Neříkám, že bych to zvládl sám naprogramovat, ale tyhle "výlety" někam, k čemu bych se normálně nedostal, jsou zajímavý a obohacující.
-
ja sa venujem hlavne MS technologiam - C#. Venuje sa tomu niekto od vas?
-
Ale principy su asi vsade rovnake. Cize by to malo byt jedno, ci som C# alebo C++ :)
-
A co povazujete za dolezite, co by mal kazdy programator ovladat, alebo aby sa lisil od inych, bol lepsi.
Co povazujem ja za dolezite, co by mal kazdy programator ovladat? Urcite je dolezite to, aby bol otvoreny vsetkemu, co sa okolo neho objavi. Ziadne silacke kecy typu "javabugscript", "funkcionalne programovanie je nepouzitelny shit", "OOP je bastl" a podobne nesmu mat v slovniku dobreho programatora miesto.
Ak uz chcem technologiu odsudit, tak nech mam s nou najprv dostatok skusenosti, aby som vedel, ze je pre mna naozaj nepouzitelna. Pretoze mnoho veci sa da navzajom kombinovat a aj to co bolo pred rokmi pomale a neohybne, moze byt dnes rychle a flexibilne.
odsoudit historii a aktualnost muze kdokoliv, kdo ma namireno k novym paradigmatum.
vsichni zname nedostatky tech starych a soucasne pouzivanych.
neschopnost sudnat ruzove bryle svedci spis o tom co je v tehle vete...
tedy o jiste forme neschopnosti.
leda by snad tim chtel davat na odiv svou sexualitu?
to uz mi prijde min skodlivy racionalne kriticky postoj pri stredu se technoslunickem.
iracionalni citove podbarvena vyhranenost odmitanim ma vic prostoru pro normalnost nez technoslunicko, u ktereho se to da oduvnodnit snad jen marketingem za honorar nebo osobnim zajmem zachovani hodnoty investice do uziti technologie po prilepeni se na takovou osobu.
-
ja sa venujem hlavne MS technologiam - C#. Venuje sa tomu niekto od vas?
Tady se věnujeme spíš otevřeným technologiím. C# jen okrajově, protože v linuxovém světě nemá valného významu.
-
A co povazujete za dolezite, co by mal kazdy programator ovladat, alebo aby sa lisil od inych, bol lepsi.
Co povazujem ja za dolezite, co by mal kazdy programator ovladat? Urcite je dolezite to, aby bol otvoreny vsetkemu, co sa okolo neho objavi. Ziadne silacke kecy typu "javabugscript", "funkcionalne programovanie je nepouzitelny shit", "OOP je bastl" a podobne nesmu mat v slovniku dobreho programatora miesto.
Ak uz chcem technologiu odsudit, tak nech mam s nou najprv dostatok skusenosti, aby som vedel, ze je pre mna naozaj nepouzitelna. Pretoze mnoho veci sa da navzajom kombinovat a aj to co bolo pred rokmi pomale a neohybne, moze byt dnes rychle a flexibilne.
Naprosty souhlas. Od takovych "machru" se pak treba dozvidam, ze regex pattern matching v Groovy je to stejne jako pattern matching ve Scale (a takovi lide si dovoli napsat blog post a srovnavat a pomoci skore hodnotit ty dva jazyky, neuveritelne).
Dobrymi priklady jsou Java a JavaScript. Oboje bylo povazovane za strasne pomale, jen takova technlogicka dema, pouze na hrani. Lidi, kteri se o to alespon trochu nezajimaji, casto zamrznou a technlogii vidi jako stale stejnou, nemennou. Nad JVM se nyni programuji obrovske aplikace (myslim, ze je to primarni platforma pro moloch enterprise veci), ktere jsou velmi narocne na vykon. JavaScript se bezne pouziva uz i na servrech a vykonem je na tom snad nejlepe z interpretovanych jazyku (minimalne ve srovnani s PHP, Ruby, Python). Na mensi veci je idealni - snad na vsechno jsou baliky v npm, jednoducha instalace, velmi rychly vyvoj a solidni vykon.
PS: Javu ani JavaScript jako jazyky nejak extra nemusim. Beru je proste jako nastroje, ktere pouziju, pokud jsou mi predepsany. Kde si muzu vybrat, tam radeji sahnu po Scale nebo LiveScriptu - vyuzivam vyhod platformy (rychlost, knihovny) ale pisu v mnohem hezcim jazyce.
-
ked sa tak nad tym zamyslam, tak dolezite je hlavne to, aby sa clovek venoval najviac tomu, co ho bavi alebo ak chce prezkumat nejaku oblast co ho zaujima, tak by mal do toho trosku zabrdnut. nie moc tlacit na pilu.
-
ked sa tak nad tym zamyslam, tak dolezite je hlavne to, aby sa clovek venoval najviac tomu, co ho bavi alebo ak chce prezkumat nejaku oblast co ho zaujima, tak by mal do toho trosku zabrdnut. nie moc tlacit na pilu.
Přesně tak. Chce to prostě zájem a motivaci. A ideálně někoho zkušeného, kdo zájemce nasměruje, aby zbytečně neztrácel čas.
-
Jak se učit - najděte si známý a zajímavý projekt na githubu, naučte se to používat a pak si přečtěte zdroják. Věci které jsou trendy a hype jsou vhodné, alespoň budete stíhat všem těm dnešním script kiddies 8).
-
ak mam byt uprimny, nejake skriptovacie veci typu - javascript, jquery, a ine script ma nelakaju. nikdy som sa v tom nenasiel, a ked som nieco musel vyriesit pomocou javascriptu, jednoducho som to vygooglil a viac som tomu nevenoval pozornost. Nemotivovalo ma to venovat sa tomu
-
Já osobně bych doporučil studium jazyků (ne programovacích), třeba angličtinu. Nebo i jiné, záleží na oboru, kde se pohybujete, nebo chcete pohybovat.
Člověk si u toho alespoň trochu odpočine (od programování) a v budoucnu to může otevřít velmi zajímavé dveře.
-
ak mam byt uprimny, nejake skriptovacie veci typu - javascript, jquery, a ine script ma nelakaju. nikdy som sa v tom nenasiel, a ked som nieco musel vyriesit pomocou javascriptu, jednoducho som to vygooglil a viac som tomu nevenoval pozornost. Nemotivovalo ma to venovat sa tomu
Javascript je jen jedním z mnoha skriptovacích jazyků a mně osobně také moc nesedí. Ovšem pokud něco má běžet přímo v prohlížeči, tak jinou volbu nemám.
Skripty na druhou stranu bývají obvykle mnohem kratší než programy v kompilovaných jazycích a při vývoji se ušetří dost času - testy se dají spouštět bez kompilace přímo v editoru.
-
ako si rozsirujete svoje vedomosti v oblasti IT, hlavne programovanie
Ja som od r. 2002 na http://www.tek-tips.com/ - prave pozeram, ze doteraz som sa tam prihlasil 13.265 krat
Su tam diskusne fora na rozne programovacie jazyky, databazove systemy, operacne systemy atd,...
Najprv som sa tam prihlasil, pretoze som potreboval pomoc pri rieseni nejakeho problemu z prace. Neskor ma to tak chytilo, ze som tam bol denne a tiez som zacal pomahat ostanym clenom s ich problemami. Tymto sposobom som vyriesil mnozstvo problemov a sam som sa tiez pritom zdokonaloval - napr. v Perl, Tcl, Ruby, REXX, VBscript, Fortran, COBOL a SQL DB2 ... atd.
Takze moja rada je: prihlas sa na nejake diskusne forum, ries tam prakticke problemy ostanych clenov a to ta bude udrzovat vo forme a posunie ta dalej.
-
ak mam byt uprimny, nejake skriptovacie veci typu - javascript, jquery, a ine script ma nelakaju. nikdy som sa v tom nenasiel, a ked som nieco musel vyriesit pomocou javascriptu, jednoducho som to vygooglil a viac som tomu nevenoval pozornost. Nemotivovalo ma to venovat sa tomu
Tak ono je jedna vec napsat hello world v jQuery a druha opravdu porozumnet jazyku, coz v pripade JS prekvapive neni uplne trapne, a umet resit realne netrivialni problemy, mit rozhled v prostredi kolem jazyka - knihovny.
Ja jsem se k tomu dostal asi pres user scripty - ohybani cizich stranek k obrazu svemu. Ale pokud vas to netahne, tak bych spis doporucil neco z tech vice exotickych - Haskell, pripadne ten Prolog. Osobne si moc v Prologu stredni a vetsi projekty nedovedu predstavit (videl jsem ho ale jen kratce na skole), ale v Haskellu urcite ano. Pokud se motate kolem .NETu, tak mozna lehce pricichnout k F#?
Javascript je jen jedním z mnoha skriptovacích jazyků a mně osobně také moc nesedí. Ovšem pokud něco má běžet přímo v prohlížeči, tak jinou volbu nemám.
Take me moc nesedi/nesedel, nejak jsem si na nej ale zvyknul a novejsi verze vypadaji, ze jdou spravnym smerem. Muzete psat v jazyku, ktery se transpiluje nebo kompiluje do JS. Jak jsem psal, napr. LiveScript (http://livescript.net/) (vice dotazeny CoffeScript, je to trochu podobne Ruby nebo Pythonu, LiveScript ma nesctetne vice vychytavek, napr. operator |> [pipe, presmerovani do fce] nebo !-> [nevraci posledni vyraz jako vysledek]) nebo pokud chcete neco silne typovaneho, tak ScalaJS (http://www.scala-js.org/).
https://www.youtube.com/watch?v=9SalPdAEI28 - delsi predstaveni ScalaJS s priklady
Skripty na druhou stranu bývají obvykle mnohem kratší než programy v kompilovaných jazycích a při vývoji se ušetří dost času - testy se dají spouštět bez kompilace přímo v editoru.
Tohle (alespon u JavaScriptu) prestava platit. V beznych projektech mate nejake build scripty, ktere kod transformuji - vetsinou z ES6 do ES5, ktere podporuji vsechny "normalni" prohlizece, take se casto pouzivaji lintery, je treba zpracovat vsechny zavislosti a vsechny veci nejak spojit (bundle) a nastrkat do stranky, pripadne pokrocilejsi veci jako webpack, ktere netvori jeden bundle, ale nekolik, aby se to nenacitalo prilis dlouho, atd.
Je treba rozlisovat opravdu skripty - jsou kraticke a pousti se primo vs. aplikace, ktere jsou malokdy poustene primo a resi obecne slozitejsi ukol.
Skripty na druhou stranu bývají obvykle mnohem kratší než programy v kompilovaných jazycích a při vývoji se ušetří dost času - testy se dají spouštět bez kompilace přímo v editoru.
ak mam byt uprimny, nejake skriptovacie veci typu - javascript, jquery, a ine script ma nelakaju.
A samozrejme oblibeny termin "skriptovaci jazyky" - podle jedne z definic z wiki tam spada i vse nad JVM (napr. Java nebo Scala), protoze to vse je interpretovane pomoci JVM. Podle dalsi definice tam naopak uz ani JavaScript, Ruby ci Python nepatri, protoze bezne projekty v nich presahuji predepsany pocet radku na "skriptovaci" jazyk. A pak tu mame veci, ktere vetsina lidi jako skriptovaci jazyky nebere, jako Scala Script nebo Groovy, ktere bezi nad JVM ale pouzivaji se vyhradne (Scala Script) nebo bezne (napr. Gradle) pro skriptovani.
-
Ale pokud vas to netahne, tak bych spis doporucil neco z tech vice exotickych - Haskell, pripadne ten Prolog.
Misto Haskellu bych pro ucely zabavneho (ve smyslu "bavi me to") zkoumani fakt doporucil ten Elm. Intenzivne ho ted testuju a musim rict, ze autori odvedli fakt az prekvapive dobrou praci ve smeru priblizeni FRP "normalnim" lidem. Nevim, jak moc bezbolestne je s nim zacit pro cloveka, ktery FP nikdy nepouzival, ale urcite to bude o rad jednodussi nez Haskell. A az treba Elm prestane stacit, da se potom krasne prejit prave na Haskell nebo PureScript.
Myslim, ze pricichnout k FRP by mel ze studijnich duvodu snad kazdy programator, ktery to se sebou mysli vazne. Nikde jinde si tak hezky neprocvici systematicky cisty pristup, udalosti, transformace, skladani krasnych cistych funkci do prehlednych celku...
Kdyz uz nic jinyho, tak minimalne "Elm manifest" stoji urcite za prostudovani: https://github.com/evancz/elm-architecture-tutorial
-
Ale pokud vas to netahne, tak bych spis doporucil neco z tech vice exotickych - Haskell, pripadne ten Prolog.
Rozhodně doporučuju ten Prolog (tím neříkám, že Haskell ne, FP je také důležité) a některé jeho varianty jako XSB Prolog nebo λ-Prolog.
-
Rozhodně doporučuju ten Prolog
Ja taky, Prolog je mimoradne cenna zkusenost - i kdyby treba jenom proto, zakusit, jak muze byt formalne suprova myslenka prakticky nepouzitelna ;)
-
Ale pokud vas to netahne, tak bych spis doporucil neco z tech vice exotickych - Haskell, pripadne ten Prolog.
Rozhodně doporučuju ten Prolog (tím neříkám, že Haskell ne, FP je také důležité) a některé jeho varianty jako XSB Prolog nebo λ-Prolog.
Si pamatuju, jak jsme na skole prskali, kdyz jsme v tom meli psat tymovy projekt :D. Ale v zaveru to bylo hodne zajimave, zkusili jsme si neco naprosto odlisneho. Psali jsme tusim AI pro nejakou deskovou hru a na konci predmetu nechali vsechny vytvory bojovat proti sobe, IMO hezky provedene :).
-
Ale pokud vas to netahne, tak bych spis doporucil neco z tech vice exotickych - Haskell, pripadne ten Prolog.
Rozhodně doporučuju ten Prolog (tím neříkám, že Haskell ne, FP je také důležité) a některé jeho varianty jako XSB Prolog nebo λ-Prolog.
Si pamatuju, jak jsme na skole prskali, kdyz jsme v tom meli psat tymovy projekt :D. Ale v zaveru to bylo hodne zajimave, zkusili jsme si neco naprosto odlisneho. Psali jsme tusim AI pro nejakou deskovou hru a na konci predmetu nechali vsechny vytvory bojovat proti sobe, IMO hezky provedene :).
Jo, je to úplně jiné a na mnohé úlohy mnohem efektivnější.
-
Si pamatuju, jak jsme na skole prskali, kdyz jsme v tom meli psat tymovy projekt :D. Ale v zaveru to bylo hodne zajimave, zkusili jsme si neco naprosto odlisneho. Psali jsme tusim AI pro nejakou deskovou hru a na konci predmetu nechali vsechny vytvory bojovat proti sobe, IMO hezky provedene :).
Školní projekty jsou trochu problém. Prolog se skvěle hodí na ukládání informací a vyvozování na základě pravidel. Pokud ale v Prologu píšu program, který má imperativní charakter (prvně udělej tohle a pak tohle), tak Prolog víceméně znásilňuju - vím, jakými kroky bude vyvozovat a využiju toho. Pokud je takhle školní projekt postavený, může to mít dva důsledky: 1. budu si ťukat na čelo, proč vůbec takový jazyk existuje a nikdy už ho nepoužiju 2. pochopím, že psát imeprativní program v Prologu je opruz a nikdy už to neudělám. Přitom podle mě by školní projekt v Prologu měl vést k něčemu úplně jinému: 3. pochopím, jak skvělý a v podstatě nezastupitelný nástroj Prolog je pro ukládání strukturovaných dat a vyvozování nad nimi. To ale můžu zjistit jenom pokud ho použiju tak, jak má v praxi smysl ho použít, a ne tak, jak se používá ve školních příkladech.
-
Mimochodem, proto taky nemusí být špatný zkusit si prvně Datalog - aby se člověk na ten nástroj díval spíš jako na databázi. A teprve až narazí na věci, na který Datalog nestačí, kouknout na Prolog - tou optikou Datalogu ho imho pochopí líp/realističtěji.
-
Ale pokud vas to netahne, tak bych spis doporucil neco z tech vice exotickych - Haskell, pripadne ten Prolog.
Rozhodně doporučuju ten Prolog (tím neříkám, že Haskell ne, FP je také důležité) a některé jeho varianty jako XSB Prolog nebo λ-Prolog.
Jinak psát v nějakém funkcionálním jazyce bez znalosti teorie kategorií je k ničemu, protože člověk pak nechápe základní principy a získá "blbé" návyky, kterých se pak těžko zbavuje. Jinými slovy, chce to dobrou knížku nebo radu zkušeného.
-
Rozhodne se nazacinalo tymovym projektem, tim predmet koncil :). V prubehu semestru byla cvika a tam se zacinalo na tech asi klasickych prikladech s vazbami v rodine, listy, stromy atp. Prednasejiciho jsem moc nemusel (pan Kolar, pusobil dost namyslene), ale latka (FP a LP - Haskell a Prolog) to byla zajimava a cvicici se snazili.
-
Jinak psát v nějakém funkcionálním jazyce bez znalosti teorie kategorií je k ničemu, protože člověk pak nechápe základní principy a získá "blbé" návyky, kterých se pak těžko zbavuje.
A mohl bys uvest konkretni priklad takoveho navyku a aspon naznacit, proc ho bez znalosti TK podle tebe clovek ziska?
-
Jinak psát v nějakém funkcionálním jazyce bez znalosti teorie kategorií je k ničemu, protože člověk pak nechápe základní principy a získá "blbé" návyky, kterých se pak těžko zbavuje. Jinými slovy, chce to dobrou knížku nebo radu zkušeného.
To me pripomnelo Crockforda:
The people would try to teach you this stuff would say that:
In order to understand monads, you need to first learn Haskell and Category Theory.
I think this is like saying:
In order to understand burritos, you must first learn Spanish.
;D
Osobne netusim, co je na tom pravdy, protoze TK neznam a z FP pouzivam asi spise zaklady.
-
Osobne netusim, co je na tom pravdy, protoze TK neznam a z FP pouzivam asi spise zaklady.
Podle me je to prani otcem myslenky, protoze treba takove promises pouzivaji i ti nejslabsi javascriptari bez problemu a nejenomze monady ani TK neznaji, ale ani nevi, ze promises jsou monady. Aby to nebylo tak, ze nekdo nevi, ze to nejde, tak to udela ;)
Ale treba zboj nejaky silny argument pro tohle tvrzeni ma, proto jsem se ho na to ptal.
...anebo je to opet klasicke terminologicke nedorozumeni a kdyz zboj rika "spatne navyky", tak tim mysli bezchybny kod, ktery ale neni napsany s vedomim vsech souvislosti ve vesmiru ;)
-
Jinak psát v nějakém funkcionálním jazyce bez znalosti teorie kategorií je k ničemu, protože člověk pak nechápe základní principy a získá "blbé" návyky, kterých se pak těžko zbavuje. Jinými slovy, chce to dobrou knížku nebo radu zkušeného.
To me pripomnelo Crockforda:
The people would try to teach you this stuff would say that:
In order to understand monads, you need to first learn Haskell and Category Theory.
I think this is like saying:
In order to understand burritos, you must first learn Spanish.
;D
Osobne netusim, co je na tom pravdy, protoze TK neznam a z FP pouzivam asi spise zaklady.
S burritos jsem konverzaci nikdy nevedl, tak nevím, nakolik to přirovnání sedí, ale monády *jsou* koncept z teorie kategorií a základní povědomí o ní je užitečné, stejně jako při práci s Prologem je dobré znát formální logiku, aby si pak člověk naivně nemyslel (nebo nedejbože se ještě o tom do krve hádal), že v Prologu nejde naimplementovat například modální nebo třeba intenzionální logika. Ony i imperativní jazyky mají formální základ, jenže ten se učí tak nějak za běhu (a nikdo si nestěžuje).
-
základní povědomí o ní je užitečné, stejně jako při práci s Prologem je dobré znát formální logiku, aby si pak člověk naivně nemyslel (nebo nedejbože se ještě o tom do krve hádal), že v Prologu nejde naimplementovat například modální nebo třeba intenzionální logika.
Kvituji rýpnutí do mě :) Co nekvituju, je, že jsi to posunul úplně jako obratný a zkušený manipulátor, vypadá to, že to máš zmáklý :)
Nicméně k věci: směšuješ dvě zásadně odlišný záležitosti:
- schopnost napsat (adekvátně) kvalitní kód - tj. používat nějaký systém, pohybovat se "uvnitř něj" = úroveň
- tvrdit něco o tom systému = metaúroveň
Prvně jsi mluvil o tom prvním ("špatné návyky" každý pochopí jako "špatný kód" = úroveň).
Že jsou potřeba nějaké lepší/hlubší znalosti potřeba pro to druhé, nebude nikdo rozumný zpochybňovat. Ale taky to nikdo běžně v praxi nepotřebuje. Když to řeknu hodně lapidárně (a nechám si za to nadávat do lopat, což zaručeně přijde), pokud už nakrásně mám problém "můžu prologem zachytit modality?", tak ho normální člověk bude řešit buď tím, že se obrátí na někoho, kdo tomu rozumí, nebo (tramtadadá) prostě do googlu zadá "prolog modalities" - a pro běžnou situaci mu to bude stačit, protože si prostě přečte pár pojednání o tom, jestli modality v prologu jdou nebo ne a za jakých podmínek. K tomu, aby to uměl zodpovědně zodpovědět sám, by stejně musel mít tolik znalostí, že jejich nabytí by bylo neadekvátně drahé a v samotném programování (úroveň) by mu to stejně nebylo vůbec k ničemu.
S burritos jsem konverzaci nikdy nevedl, tak nevím, nakolik to přirovnání sedí
Vzhledem k tvé inteligenci a vzdělání tohle taky nejde brát jinak než jako (obratnou! to člověk musí uznat) manipulaci. V tom vtipu samozřejmě nejde o to, že bys s burritem mluvil, ale o to, že by někdo mohl tvrdit, že pro vychutnání si burrita pořebuje člověk nutně chápat celý kontext, španělskou kulturu, atd. atd. - přesně jako někdo tvrdí to, že k programování je potřeba znát CT. Není. Burrito prostě sežereš, program prostě napíšeš. Jo, když k tomu má někdo kontext, vychutná si to asi líp, napíše lepší kód. Asi. Možná. Dá se to předpokládat.
, ale monády *jsou* koncept z teorie kategorií a
Když jsi tady zmínil tu analytickou filosofii, nepřijde ti, že by bylo docela legitimní říct, že monády se k CT mají stejně jako se má zajíc k biologii? Je zajíc "konceptem z biologie"? Je potřeba znát taxonomii savců k tomu, aby mohl člověk jít na hon?
Ony i imperativní jazyky mají formální základ, jenže ten se učí tak nějak za běhu (a nikdo si nestěžuje).
Což jde úplně stejně i u FP. Akorátže FP je natolik prorostlé s akademickým prostředím, že kolem něj doteď dost panovala a někde i dál panuje "elitářská" atmosféra. V uvozovkách, protože já tomu postoji docela rozumím:
"A monad is just a monoid in the category of endofunctors", tím je to vysvětleno a pokud to narozdíl od nás vědců nechápete, tak si to dostudujte, nebo to možná není jazyk pro vás. Nashledanou.
...je to z určitýho úhlu pohledu legitimní a určitě racionální postoj. Jenom je to prostě postoj autisty.
-
základní povědomí o ní je užitečné, stejně jako při práci s Prologem je dobré znát formální logiku, aby si pak člověk naivně nemyslel (nebo nedejbože se ještě o tom do krve hádal), že v Prologu nejde naimplementovat například modální nebo třeba intenzionální logika.
Kvituji rýpnutí do mě :) Co nekvituju, je, že jsi to posunul úplně jako obratný a zkušený manipulátor, vypadá to, že to máš zmáklý :)
Nicméně k věci: směšuješ dvě zásadně odlišný záležitosti:
- schopnost napsat (adekvátně) kvalitní kód - tj. používat nějaký systém, pohybovat se "uvnitř něj" = úroveň
- tvrdit něco o tom systému = metaúroveň
Prvně jsi mluvil o tom prvním ("špatné návyky" každý pochopí jako "špatný kód" = úroveň).
Že jsou potřeba nějaké lepší/hlubší znalosti potřeba pro to druhé, nebude nikdo rozumný zpochybňovat. Ale taky to nikdo běžně v praxi nepotřebuje. Když to řeknu hodně lapidárně (a nechám si za to nadávat do lopat, což zaručeně přijde), pokud už nakrásně mám problém "můžu prologem zachytit modality?", tak ho normální člověk bude řešit buď tím, že se obrátí na někoho, kdo tomu rozumí, nebo (tramtadadá) prostě do googlu zadá "prolog modalities" - a pro běžnou situaci mu to bude stačit, protože si prostě přečte pár pojednání o tom, jestli modality v prologu jdou nebo ne a za jakých podmínek. K tomu, aby to uměl zodpovědně zodpovědět sám, by stejně musel mít tolik znalostí, že jejich nabytí by bylo neadekvátně drahé a v samotném programování (úroveň) by mu to stejně nebylo vůbec k ničemu.
S burritos jsem konverzaci nikdy nevedl, tak nevím, nakolik to přirovnání sedí
Vzhledem k tvé inteligenci a vzdělání tohle taky nejde brát jinak než jako (obratnou! to člověk musí uznat) manipulaci. V tom vtipu samozřejmě nejde o to, že bys s burritem mluvil, ale o to, že by někdo mohl tvrdit, že pro vychutnání si burrita pořebuje člověk nutně chápat celý kontext, španělskou kulturu, atd. atd. - přesně jako někdo tvrdí to, že k programování je potřeba znát CT. Není. Burrito prostě sežereš, program prostě napíšeš. Jo, když k tomu má někdo kontext, vychutná si to asi líp, napíše lepší kód. Asi. Možná. Dá se to předpokládat.
, ale monády *jsou* koncept z teorie kategorií a
Když jsi tady zmínil tu analytickou filosofii, nepřijde ti, že by bylo docela legitimní říct, že monády se k CT mají stejně jako se má zajíc k biologii? Je zajíc "konceptem z biologie"? Je potřeba znát taxonomii savců k tomu, aby mohl člověk jít na hon?
Ony i imperativní jazyky mají formální základ, jenže ten se učí tak nějak za běhu (a nikdo si nestěžuje).
Což jde úplně stejně i u FP. Akorátže FP je natolik prorostlé s akademickým prostředím, že kolem něj doteď dost panovala a někde i dál panuje "elitářská" atmosféra. V uvozovkách, protože já tomu postoji docela rozumím:
"A monad is just a monoid in the category of endofunctors", tím je to vysvětleno a pokud to narozdíl od nás vědců nechápete, tak si to dostudujte, nebo to možná není jazyk pro vás. Nashledanou.
...je to z určitýho úhlu pohledu legitimní a určitě racionální postoj. Jenom je to prostě postoj autisty.
Nějak nevím, cos tím vším chtěl říct. Ale kvůli tobě mám teď chuť na burritos :/ A nejlepší, co tu maj, je fish & ships, čili slovy Samuela Jacksona "national dish? more like a national disaster". Jinak teda k věci, už jsi pochopil, proč je modální logika fragmentem FOL?
-
Nějak nevím, cos tím vším chtěl říct. Ale kvůli tobě mám teď chuť na burritos :/ A nejlepší, co tu maj, je fish & ships, čili slovy Samuela Jacksona "national dish? more like a national disaster". Jinak teda k věci, už jsi pochopil, proč je modální logika fragmentem FOL?
které matematické důkazy byste teda doporučil k prostudování?
Haskell už jsem jakž takž pobral, Prolog mi sice přijde zajímavý, ale na hovno, tak teď snad ta základní matematika
-
Nějak nevím, cos tím vším chtěl říct. Ale kvůli tobě mám teď chuť na burritos :/ A nejlepší, co tu maj, je fish & ships, čili slovy Samuela Jacksona "national dish? more like a national disaster". Jinak teda k věci, už jsi pochopil, proč je modální logika fragmentem FOL?
které matematické důkazy byste teda doporučil k prostudování?
Haskell už jsem jakž takž pobral, Prolog mi sice přijde zajímavý, ale na hovno, tak teď snad ta základní matematika
Neřekl bych, že seznam důkazů je vhodný výchozí bod. Ale pro začátek bych doporučil například rovnostní logiku a k prostudování důkaz její úplnosti (Birkhoffova věta), protože stejně se dokazuje i úplnost FOL (jen to je složitější). Zároveň tak člověk dojde i k tomu, proč Prolog není na hovno ;)
-
Nějak nevím, cos tím vším chtěl říct. Ale kvůli tobě mám teď chuť na burritos :/ A nejlepší, co tu maj, je fish & ships, čili slovy Samuela Jacksona "national dish? more like a national disaster". Jinak teda k věci, už jsi pochopil, proč je modální logika fragmentem FOL?
které matematické důkazy byste teda doporučil k prostudování?
Haskell už jsem jakž takž pobral, Prolog mi sice přijde zajímavý, ale na hovno, tak teď snad ta základní matematika
Neřekl bych, že seznam důkazů je vhodný výchozí bod. Ale pro začátek bych doporučil například rovnostní logiku a k prostudování důkaz její úplnosti (Birkhoffova věta), protože stejně se dokazuje i úplnost FOL (jen to je složitější). Zároveň tak člověk dojde i k tomu, proč Prolog není na hovno ;)
"na hovno" tady má velmi specifický význam - že nevím co bych v tom dělal
-
"na hovno" tady má velmi specifický význam - že nevím co bych v tom dělal
hovno = 0
na n = 1 ^ n
*Main> na hovno
1
-
Nějak nevím, cos tím vším chtěl říct. Ale kvůli tobě mám teď chuť na burritos :/ A nejlepší, co tu maj, je fish & ships, čili slovy Samuela Jacksona "national dish? more like a national disaster". Jinak teda k věci, už jsi pochopil, proč je modální logika fragmentem FOL?
které matematické důkazy byste teda doporučil k prostudování?
Haskell už jsem jakž takž pobral, Prolog mi sice přijde zajímavý, ale na hovno, tak teď snad ta základní matematika
Neřekl bych, že seznam důkazů je vhodný výchozí bod. Ale pro začátek bych doporučil například rovnostní logiku a k prostudování důkaz její úplnosti (Birkhoffova věta), protože stejně se dokazuje i úplnost FOL (jen to je složitější). Zároveň tak člověk dojde i k tomu, proč Prolog není na hovno ;)
"na hovno" tady má velmi specifický význam - že nevím co bych v tom dělal
Prolog je na umělou inteligenci, zazářil například v IBM Watson.
-
Nějak nevím, cos tím vším chtěl říct.
Stane se.
Jinak teda k věci, už jsi pochopil, proč je modální logika fragmentem FOL?
A ty už jsi pochopil, jak moc je modální logika, která je fragmentem FOL, omezená? Tak omezená, že pomocí ní nepopíšeš ani svět, jak ho vnímá pětileté dítě? A že já jsem tehdá mluvil o logice, která myšlení pětiletého dítěte přesahuje, takže tvoje poznámka byla úplně irelevantní, což je ve spojení s tvým komunikačním stylem dost matoucí? Je to fakt škoda, tvoje znalosti a schopnosti by se daly využít k většímu užitku ostatních...
Prolog mi sice přijde zajímavý, ale na hovno
Prolog je skvělý na to, co jsem psal výš. Pokud se použije fakt jenom na to dotazování nad daty a ta výkonná logika se napíše v něčem jiným, je nedostižný. Jednou jsem třeba zkoušel, jak by se pomocí něj dal napsat čistý a silný configuration management - čistě praktická věc, perspektivně o řád lepší než existující řešení. A mám z toho pokusu dojem, že by to mohlo jít. Proof of concept: https://github.com/mprymek/symconfig (tohle je hodně počáteční verze, na disku to mám teď už v daleko lepší podobě, ale nechce se mi to zatím zveřejňovat, chce to ještě práci, na kterou teď nemám čas).
-
Nějak nevím, cos tím vším chtěl říct.
Stane se.
Jinak teda k věci, už jsi pochopil, proč je modální logika fragmentem FOL?
A ty už jsi pochopil, jak moc je modální logika, která je fragmentem FOL, omezená? Tak omezená, že pomocí ní nepopíšeš ani svět, jak ho vnímá pětileté dítě? A že já jsem tehdá mluvil o logice, která myšlení pětiletého dítěte přesahuje, takže tvoje poznámka byla úplně irelevantní, což je ve spojení s tvým komunikačním stylem dost matoucí? Je to fakt škoda, tvoje znalosti a schopnosti by se daly využít k většímu užitku ostatních...
Prolog mi sice přijde zajímavý, ale na hovno
Prolog je skvělý na to, co jsem psal výš. Pokud se použije fakt jenom na to dotazování nad daty a ta výkonná logika se napíše v něčem jiným, je nedostižný. Jednou jsem třeba zkoušel, jak by se pomocí něj dal napsat čistý a silný configuration management - čistě praktická věc, perspektivně o řád lepší než existující řešení. A mám z toho pokusu dojem, že by to mohlo jít. Proof of concept: https://github.com/mprymek/symconfig (tohle je hodně počáteční verze, na disku to mám teď už v daleko lepší podobě, ale nechce se mi to zatím zveřejňovat, chce to ještě práci, na kterou teď nemám čas).
1) Tys tehdy explicitně mluvil o S4 nebo S5 (z hlavy už nevím), a to jsou fragmenty FOL, jenže tys tvrdil, že na to je potřeba logika vyššího řádu, možná víc než dva, což není pravda, stačí FOL (a navíc logika 2. řádu není slabší než miliontého řádu). K diskusi o myšlení pětiletých dětí by to myslím chtělo spíše psychologa, a to nejsem.
2) Prolog je dost dobrý pro IBM Watson, ale nehodí se na vše, pochopitelně. V SQL se taky nepíšou hry...
-
1) Tys tehdy explicitně mluvil o S4 nebo S5 (z hlavy už nevím), a to jsou fragmenty FOL, jenže tys tvrdil, že na to je potřeba logika vyššího řádu, možná víc než dva, což není pravda, stačí FOL (a navíc logika 2. řádu není slabší než miliontého řádu). K diskusi o myšlení pětiletých dětí by to myslím chtělo spíše psychologa, a to nejsem.
Řešíš nějaký svůj konkrétní problém? Nebo? Jestli ti jde o to, abych uznal, že logice rozumíš líp než já, tak to je myslím zřejmý. A jestli to chceš explicitně slyšet, klidně to sem slavnostně vyvěsím v PDFku ;) A jestli ti jde o to, udělat ze mě pitomce, tak přeju hodně štěstí ke kvalitním životním cílům :) Každopádně ale ani kvůli jednomu myslím nemá smysl se k té diskusi vracet, pokud zásadně nezměníme styl komunikace.
-
1) Tys tehdy explicitně mluvil o S4 nebo S5 (z hlavy už nevím), a to jsou fragmenty FOL, jenže tys tvrdil, že na to je potřeba logika vyššího řádu, možná víc než dva, což není pravda, stačí FOL (a navíc logika 2. řádu není slabší než miliontého řádu). K diskusi o myšlení pětiletých dětí by to myslím chtělo spíše psychologa, a to nejsem.
Řešíš nějaký svůj konkrétní problém? Nebo? Jestli ti jde o to, abych uznal, že logice rozumíš líp než já, tak to je myslím zřejmý. A jestli to chceš explicitně slyšet, klidně to sem slavnostně vyvěsím v PDFku ;) A jestli ti jde o to, udělat ze mě pitomce, tak přeju hodně štěstí ke kvalitním životním cílům :) Každopádně ale ani kvůli jednomu myslím nemá smysl se k té diskusi vracet, pokud zásadně nezměníme styl komunikace.
Jo, styl komunikace bude jeden z problémů. Konkrétně tvoje "okecávání". Zkus používat jen matematické symboly, to by mohlo pomoct (prakticky i psychicky, navíc by tak zůstaly jen věcné argumenty, ať už korektní nebo vyvratitelné jiným věcným argumentem) ;)
-
Jo, styl komunikace bude jeden z problémů. Konkrétně tvoje "okecávání". Zkus používat jen matematické symboly, to by mohlo pomoct (prakticky i psychicky, navíc by tak zůstaly jen věcné argumenty, ať už korektní nebo vyvratitelné jiným věcným argumentem) ;)
Rád bych. Ale ty mě k tomu nemotivuješ, jestliže jsi nebyl ochotný ani dohledat přesné souřadnice článku, o kterém jsi mluvil. Moc rád se budu účastnit korektní debaty, ale musí tam být aspoň náznak oboustranného respektu a snahy o porozumění. Pokud to je stylem "já jsem kámo kapacita a občas mi ze stolu pro tebe spadnou nějaké drobky", tak to nemá smysl a žádné matematické symboly na tom nic nezmění.
-
Jo, styl komunikace bude jeden z problémů. Konkrétně tvoje "okecávání". Zkus používat jen matematické symboly, to by mohlo pomoct (prakticky i psychicky, navíc by tak zůstaly jen věcné argumenty, ať už korektní nebo vyvratitelné jiným věcným argumentem) ;)
Rád bych. Ale ty mě k tomu nemotivuješ, jestliže jsi nebyl ochotný ani dohledat přesné souřadnice článku, o kterém jsi mluvil. Moc rád se budu účastnit korektní debaty, ale musí tam být aspoň náznak oboustranného respektu a snahy o porozumění. Pokud to je stylem "já jsem kámo kapacita a občas mi ze stolu pro tebe spadnou nějaké drobky", tak to nemá smysl a žádné matematické symboly na tom nic nezmění.
Mám dodat poledník a rovnoběžku? ;) Jako teď vážně, pokud je důkaz na jeden řádek, tak k tomu asi není nutné mít článek v American Scientist, ne? U té vyšší logiky bych to už chápal a doporučuju Hintikka 1955 (je to teda spíše filozofie, prostě sám velký Hintikka, ale stojí za přečtení víc než celý Peregrin).
-
Jako teď vážně, pokud je důkaz na jeden řádek, tak k tomu asi není nutné mít článek v American Scientist, ne?
Zboji, tady vůbec nejde o triviální konstatování, že si do FOL můžu zavést pravidlo "Nutne(x) => Mozne(x)" a mám modální logiku. Nebo to udělám trochu sofistikovaněji a mám jinou modální logiku.
Jak říkám, pokud nemáš dostatečnou chuť porozumět tomu, co jsem se snažil (zjevně nešikovně, to uznávám) říct, tak nemá smysl se v tom dál rýpat. A pokud si myslíš, že jsem se zasekl na té výš zmíněné trivialitě, tak je to neporozumění fakt velký.
U té vyšší logiky bych to už chápal a doporučuju Hintikka 1955 (je to teda spíše filozofie, prostě sám velký Hintikka, ale stojí za přečtení víc než celý Peregrin).
Ne, teď opravdu nejde o to, abys mi doporučoval literaturu. S dovolením ať jsou tvoje znalosti jaké jsou, nejsi mj učitel a já roli žáka nepřijímám. Rád si od tebe nechám poradit, poučím se, ale jak už jsem řekl: drobky ze stolu si házej někomu jinýmu.
Teď momentálně jsem ten článek použil jenom jako příklad tvojí neochoty bavit se korektně a jde o konkrétní věc, ne libovolnou literaturu. Konkrétní Peregrinův článek, o kterém jsi se zmínil a když jsem chtěl vědět, co přesně myslíš, choval ses jako (s prominutím) pako.
-
Jako teď vážně, pokud je důkaz na jeden řádek, tak k tomu asi není nutné mít článek v American Scientist, ne?
Zboji, tady vůbec nejde o triviální konstatování, že si do FOL můžu zavést pravidlo "Nutne(x) => Mozne(x)" a mám modální logiku. Nebo to udělám trochu sofistikovaněji a mám jinou modální logiku.
Jak říkám, pokud nemáš dostatečnou chuť porozumět tomu, co jsem se snažil (zjevně nešikovně, to uznávám) říct, tak nemá smysl se v tom dál rýpat. A pokud si myslíš, že jsem se zasekl na té výš zmíněné trivialitě, tak je to neporozumění fakt velký.
U té vyšší logiky bych to už chápal a doporučuju Hintikka 1955 (je to teda spíše filozofie, prostě sám velký Hintikka, ale stojí za přečtení víc než celý Peregrin).
Ne, teď opravdu nejde o to, abys mi doporučoval literaturu. S dovolením ať jsou tvoje znalosti jaké jsou, nejsi mj učitel a já roli žáka nepřijímám. Rád si od tebe nechám poradit, poučím se, ale jak už jsem řekl: drobky ze stolu si házej někomu jinýmu.
Teď momentálně jsem ten článek použil jenom jako příklad tvojí neochoty bavit se korektně a jde o konkrétní věc, ne libovolnou literaturu. Konkrétní Peregrinův článek, o kterém jsi se zmínil a když jsem chtěl vědět, co přesně myslíš, choval ses jako (s prominutím) pako.
Tak jednou tvrdíš, že by ses rád něco zajímavého dozvěděl, a pak odmítáš informace, že nejseš žák. Tímto tedy asi fakt končím, protože se nehodlám snížit k explicitnímu vypisování slov, která mě teď napadají. Budeš-li někdy mít zajímavé téma/otázku z matiky, logiky, fyziky nebo filozofie, rád si to přečtu a zapojím se do diskuze, než ji zase zabiješ.
-
To mi připomíná běžné hloupé učitele na VŠ. Znalosti berou jako poklad, který je potřeba chránit a zároveň se s ním všude chlubit. Možná na to stejně hloupí lidé skočí, ale tady na fóru to vypadá dost divně. Zkusil bych to někde na české škole, tam se obvykle za přemýšlení vyhazuje.
Určitě se rádi zapojí, ale diskuze to fakt nebude :D
-
Tak jednou tvrdíš, že by ses rád něco zajímavého dozvěděl, a pak odmítáš informace, že nejseš žák.
Neznáš náhodou transakční analýzu? Informace se dají získávat v módu "dospělý - dospělý" i "dospělý - dítě". Pokud myslíš, že získávání znalostí implikuje vztah "dospělý - dítě", tak to jsme možná narazili na zakopaného psa.
-
Tak jednou tvrdíš, že by ses rád něco zajímavého dozvěděl, a pak odmítáš informace, že nejseš žák.
Neznáš náhodou transakční analýzu? Informace se dají získávat v módu "dospělý - dospělý" i "dospělý - dítě". Pokud myslíš, že získávání znalostí implikuje vztah "dospělý - dítě", tak to jsme možná narazili na zakopaného psa.
Tak teď bych se rád něco dozvěděl já - psa nechám zakopaného a doufám, že mi buď dáš vysvětlení nebo odkaz na relevantní literaturu - co tě vede k tomu, že myšlení pětiletého dítěte (beru to jako metaforu) nelze zachytit ve FOL. Simple question...
-
Tak teď bych se rád něco dozvěděl já - psa nechám zakopaného a doufám, že mi buď dáš vysvětlení nebo odkaz na relevantní literaturu - co tě vede k tomu, že myšlení pětiletého dítěte (beru to jako metaforu) nelze zachytit ve FOL. Simple question...
Např. myslím, že pětileté dítě už umí pracovat s individuovými rolemi.
-
:-\
Tak teď bych se rád něco dozvěděl já - psa nechám zakopaného a doufám, že mi buď dáš vysvětlení nebo odkaz na relevantní literaturu - co tě vede k tomu, že myšlení pětiletého dítěte (beru to jako metaforu) nelze zachytit ve FOL. Simple question...
Např. myslím, že pětileté dítě už umí pracovat s individuovými rolemi.
A FOL ne?
-
A FOL ne?
Doteď jsem měl za to, že ne. Možná se pletu.
-
A FOL ne?
Doteď jsem měl za to, že ne. Možná se pletu.
Jestli ti jde o TIL, tak to zrovna nijak do detailu neznám, čili pauza na studium. Jestli jsou ty role Hobbsovy modality, tak to je FOL, ale možná se liší.
-
Jestli ti jde o TIL, tak to zrovna nijak do detailu neznám, čili pauza na studium. Jestli jsou ty role Hobbsovy modality, tak to je FOL, ale možná se liší.
Nejde mi teď o žádnou konkrétní logiku, na to jsi se přece neptal. Ptal jsi se, jakou úlohu podle mě umí řešit pětileté dítě a ve FOL řešit nejde. Takže ten problém je třeba jak odlišit tvrzení "Prezident ČR je plešatý" a "Prezident ČR jmenuje premiéra".
Jo, je to učebnicový problém, který znám z TILu, ale s TILem samotným přece nesouvisí, TIL je jenom jeden návrh řešení. Pokud vím, existuje jich víc (každá hyperintenzionální logika? Nevím, já trošku, malinko, znám tenhle jeden - TIL).
-
Jestli ti jde o TIL, tak to zrovna nijak do detailu neznám, čili pauza na studium. Jestli jsou ty role Hobbsovy modality, tak to je FOL, ale možná se liší.
Nejde mi teď o žádnou konkrétní logiku, na to jsi se přece neptal. Ptal jsi se, jakou úlohu podle mě umí řešit pětileté dítě a ve FOL řešit nejde. Takže ten problém je třeba jak odlišit tvrzení "Prezident ČR je plešatý" a "Prezident ČR jmenuje premiéra".
Jo, je to učebnicový problém, který znám z TILu, ale s TILem samotným přece nesouvisí, TIL je jenom jeden návrh řešení. Pokud vím, existuje jich víc (každá hyperintenzionální logika? Nevím, já trošku, malinko, znám tenhle jeden - TIL).
Tak jestli jde jen o de dicto vs. de re, tak to ve FOL jde, myslel jsem, že v tom je něco víc. Ale třeba se pletu...
-
No a uz sa to zvrtlo na nie vobec konstruktivnu debatu :/
-
Tak jestli jde jen o de dicto vs. de re
Nejen. Těch návazných problémů je pokud si pamatuju víc. Ale každopádně bych se tohodle nedržel zuby nehty, těch příkladů bude určitě víc - např. chtění, znalost, touha, záměr?
-
No a uz sa to zvrtlo na nie vobec konstruktivnu debatu :/
Sorry, fakt se za to omlouvám, bylo to nefér si tady se zbojem vyřizovat staré účty :) Slibuju, že tady už spamovat nebudu.
-
No a uz sa to zvrtlo na nie vobec konstruktivnu debatu :/
Naopak teď je velevěcná. Jen trochu off topic.
-
Tak jestli jde jen o de dicto vs. de re
Nejen. Těch návazných problémů je pokud si pamatuju víc. Ale každopádně bych se tohodle nedržel zuby nehty, těch příkladů bude určitě víc - např. chtění, znalost, touha, záměr?
Jo, to jsou tzv. modes of existence z knihy Encoding commonsense knowledge, kde se používá Davidsonův (zase filosof) způsob zápisu vět.
-
...
Podle me je to prani otcem myslenky, protoze treba takove promises pouzivaji i ti nejslabsi javascriptari bez problemu a nejenomze monady ani TK neznaji, ale ani nevi, ze promises jsou monady. Aby to nebylo tak, ze nekdo nevi, ze to nejde, tak to udela ;)
Nekde jsem cetl, jak kdyz se lidi uci programovat v JavaScriptu (jako prvni jazyk), tak nemivaji skoro problemy s promises a callbacky. Co je zajimave, ze kdyz se snazili to naucit zacatecniky, kteri ale uz umeli zaklady z nejakeho imperativniho jazyka (uz si nepamatuju, myslim Java nebo C), tak meli obrovske problemy s temi callbacky a promises - jak pochopit, tak pouzit.
Celkem me prekvapilo, ze ti, co se ucili jako 1. jazyk JS si to tak davali. Casto vidim na forech, jak s tim lide zapasi a to nejsou zadni zacatenici ve svem hlavnim jazyce. Mozna se pri uceni nekde vytvori nejaka bariera, zazije se nejaky zpusob mysleni, a pak je tezke ji obchazet/strhnout?
Nedari se mi to dohledat :(, netusi nekdo jak se to jmenovalo nebo kde to vyslo?
-
No to jsem zvědav, jak tohle dopadne.
A kdo ho má většího, Mirek* nebo zboj?
* Abecední pořadí!
(autorovi dotazu snad pomohly první dvě stránky)
-
A kdo ho má většího, Mirek* nebo zboj?
O to vůbec nejde, já s klidem uznávám, že ho Zboj má většího ;) Každopádně to máme asi konečně prozatímně vyřešeno a už nebude potřeba se k tomu vracet jinak než konstruktivně :)
Ale chtěl bych se vrátit k tomu, že člověk potřebuje znát teorii kategorií, aby mohl programovat v Haskellu. Nejenom, že to není pravda, ale v jistým smyslu může být ta znalost i vyloženě zhoubná (ne pro toho člověka, ale pro jeho okolí). Výborně to vystihuje tenhle článek: https://blog.jle.im/entry/io-monad-considered-harmful.html - a speciálně dobrá je tahle pasáž:
But having a list like [1,2,3] has nothing to do with monads. Calling every list “the list monad”, or calling every situation where a list would be useful a situation where “you want the List monad” is misleading, false, and just leads to more confusion.
[...]
Even more wrong but you couldn’t really get more wrong in the first place: Use the list monoid and filter even over a list from one to one hundred.
Nakolik to můžu posoudit, IO je z hlediska typů a algebry totéž jako List. A kdyby někdo řekl, že k práci s listy potřebuje člověk znát CT, poslali bysme ho nejspíš přímou cestou do... psychiatrické léčebny? :)
-
A kdo ho má většího, Mirek* nebo zboj?
O to vůbec nejde, já s klidem uznávám, že ho Zboj má většího ;) Každopádně to máme asi konečně prozatímně vyřešeno a už nebude potřeba se k tomu vracet jinak než konstruktivně :)
Ale chtěl bych se vrátit k tomu, že člověk potřebuje znát teorii kategorií, aby mohl programovat v Haskellu. Nejenom, že to není pravda, ale v jistým smyslu může být ta znalost i vyloženě zhoubná (ne pro toho člověka, ale pro jeho okolí). Výborně to vystihuje tenhle článek: https://blog.jle.im/entry/io-monad-considered-harmful.html - a speciálně dobrá je tahle pasáž:
But having a list like [1,2,3] has nothing to do with monads. Calling every list “the list monad”, or calling every situation where a list would be useful a situation where “you want the List monad” is misleading, false, and just leads to more confusion.
[...]
Even more wrong but you couldn’t really get more wrong in the first place: Use the list monoid and filter even over a list from one to one hundred.
Nakolik to můžu posoudit, IO je z hlediska typů a algebry totéž jako List. A kdyby někdo řekl, že k práci s listy potřebuje člověk znát CT, poslali bysme ho nejspíš přímou cestou do... psychiatrické léčebny? :)
nemůžu si pomoct, ale ten článek je fakticky chybný
There is nothing that has to do with monads at all in printing a string.
a co když chci řetězec načíst a vypsat?
a analogie se seznamem je úplně mimo
-
nemůžu si pomoct, ale ten článek je fakticky chybný
V čem přesně a proč?
a co když chci řetězec načíst a vypsat?
Když chci řetězec vypsat, tak vytvořím IO akci typu IO () a runtime ji zpracuje. S monádami to nemá vůbec nic společného.
a analogie se seznamem je úplně mimo
Cože?
-
nemůžu si pomoct, ale ten článek je fakticky chybný
V čem přesně a proč?
a co když chci řetězec načíst a vypsat?
Když chci řetězec vypsat, tak vytvořím IO akci typu IO () a runtime ji zpracuje. S monádami to nemá vůbec nic společného.
a analogie se seznamem je úplně mimo
Cože?
seznam v haskellu je monáda, protože je pro typ seznam definována instance třídy monáda, ale k práci se seznamy to nezbytné není
ukažte jak bez využití funkcí třídy monáda (a unsafeperformio :-D ) načtetu a vypíšete řetězec
-
seznam v haskellu je monáda, protože je pro typ seznam definována instance třídy monáda,
Ne. Seznam "je monáda"*, protože splňuje monad laws. List je monáda úplně stejně jako je monáda IO.
ale k práci se seznamy to nezbytné není
Stejně jako nemusím vědět, že list je monáda, nemusí ani vědět, že IO je monáda. Přesto s obojím můžu pracovat.
Jiný příklad na totéž jsem nedávno dával na tom videu o Elmu: sčítání na celých číslech je grupa. Když začátečník položí otázku "jak sečtu dvě čísla", tak jenom blázen může odpovědět "pomocí součet-grupy* - aha ty nevíš, co je grupa. Takže hele, koukej: mějme operaci x .........". Je to nesmysl, protože fakt, že sčítání je grupa, je naprosto irelevantní pro otázku "jak sečtu dvě čísla". A úplně stejně je naprosto irelevantní, že IO je monáda.
ukažte jak bez využití funkcí třídy monáda (a unsafeperformio :-D ) načtetu a vypíšete řetězec
Tohle je ale pro to, co říkám, úplně irelevantní. Když tuhle otázku přesunu na sčítání: jak chceš sčítat přirozená čísla bez využití toho, že sčítání je grupa? No prostě je sečteš! ;)
P.S. pokud ti přijde, že říkám úplné nesmysly, zkus si ten odkazovaný článek přečíst ještě jednou a fakt se snaž pochopit, co přesně říká.
-
Když tuhle otázku přesunu na sčítání: jak chceš sčítat přirozená čísla bez využití toho, že sčítání je grupa? No prostě je sečteš! ;)
když chcete v haskellu sečíst dvě čísla, použijete operátor (+), co když chcete načíst a vypsat řetězec (echo)? potřebujete k tomu nějaký operátor?
-
když chcete v haskellu sečíst dvě čísla, použijete operátor (+), co když chcete načíst a vypsat řetězec (echo)? potřebujete k tomu nějaký operátor?
Jistě. Stejně jako ke sčítání potřebuju nějaký operátor, k zřetězení seznamů potřebuju nějaký operátor, tak úplně stejně i k ZŘETĚZENÍ IO AKCÍ potřebuju nějaký operátor. Že ty operátory splňují nějaké zákony, díky čemuž ten komplex můžu nazývat "monáda" je úplně irelevantní k problému "jak zřetězím IO AKCE?" nebo "Jak provedu IO AKCI?". A nejenom, že to je irelevantní, ale pokud to není dostatečně pochopeno, je to vyloženě škodlivé, protože pak padají přesně tyhle dotazy.
Zkus se trochu oprostit od Haskellu a podívej se na to z nadhledu. Děti se prvně naučí sčítat celá čísla. Až o hooodně později se jenom některé z nich dozví, že vlastně to, co do té doby bez problémů dělaly, se dá popsat obecně a říká se tomu grupa. Stejně tak List i IO se oboje dá popsat obecně (jednotně,abstraktně) a tento obecný pojem je MONÁDA.
Pojem "IO monáda" je stejně nesmyslný a zhoubný jako pojem "sčítání grupa". Ten naštěstí nikdo nepoužívá, tak blbí nejsme.
-
seznam v haskellu je monáda, protože je pro typ seznam definována instance třídy monáda,
Ne. Seznam "je monáda"*, protože splňuje monad laws. List je monáda úplně stejně jako je monáda IO.
ale k práci se seznamy to nezbytné není
Stejně jako nemusím vědět, že list je monáda, nemusí ani vědět, že IO je monáda. Přesto s obojím můžu pracovat.
Jiný příklad na totéž jsem nedávno dával na tom videu o Elmu: sčítání na celých číslech je grupa. Když začátečník položí otázku "jak sečtu dvě čísla", tak jenom blázen může odpovědět "pomocí součet-grupy* - aha ty nevíš, co je grupa. Takže hele, koukej: mějme operaci x .........". Je to nesmysl, protože fakt, že sčítání je grupa, je naprosto irelevantní pro otázku "jak sečtu dvě čísla". A úplně stejně je naprosto irelevantní, že IO je monáda.
ukažte jak bez využití funkcí třídy monáda (a unsafeperformio :-D ) načtetu a vypíšete řetězec
Tohle je ale pro to, co říkám, úplně irelevantní. Když tuhle otázku přesunu na sčítání: jak chceš sčítat přirozená čísla bez využití toho, že sčítání je grupa? No prostě je sečteš! ;)
P.S. pokud ti přijde, že říkám úplné nesmysly, zkus si ten odkazovaný článek přečíst ještě jednou a fakt se snaž pochopit, co přesně říká.
Od kdy je proboha sčítání grupa?
-
EDIT: sorry, omylem jsem klikl na změnit místo na citace :( Původně to bylo nějak takhle:
Od kdy je proboha sčítání grupa?
Sčítání na celých číslech není grupa?
a dodatek:
Pardon, jednou se mi tam mihlo "přirozená", to byl překlep, celou dobu jsem měl namysli celá.
-
EDIT: sorry, omylem jsem klikl na změnit místo na citace :( Původně to bylo nějak takhle:
Od kdy je proboha sčítání grupa?
Sčítání na celých číslech není grupa?
a dodatek:
Pardon, jednou se mi tam mihlo "přirozená", to byl překlep, celou dobu jsem měl namysli celá.
Není. Grupa je nějaká množina spolu s nějakou operací, jež splňuje nějaké axiomy. Tím jsme opět u přesnosti vyjadřování, ani do toho nebudu tahat matiku, protože v případě definic by mělo být přesné vyjadřování normou všude (už na ZŠ nás tehdy ještě soudružka učitelka zdrbávala za nejasné kecy, na VŠ se za to vyhazuje od zkoušky). Potom ani nejde vést rozumnou diskusi.
A k tématu - když řeknu grupa, znamená to jen, že příslušná operace má určitě vlastnosti, samozřejmě je můžu vyjmenovat, ovšem kdo by to pořád dělal. Úkolem definic je zkracovat výklad - je to něco jako syntaktický cukr. Jen v případě monád je ten aparát za tím o dost složitější.
-
A kdo ho má většího, Mirek* nebo zboj?
O to vůbec nejde, já s klidem uznávám, že ho Zboj má většího ;) Každopádně to máme asi konečně prozatímně vyřešeno a už nebude potřeba se k tomu vracet jinak než konstruktivně :)
Ale chtěl bych se vrátit k tomu, že člověk potřebuje znát teorii kategorií, aby mohl programovat v Haskellu. Nejenom, že to není pravda, ale v jistým smyslu může být ta znalost i vyloženě zhoubná (ne pro toho člověka, ale pro jeho okolí). Výborně to vystihuje tenhle článek: https://blog.jle.im/entry/io-monad-considered-harmful.html - a speciálně dobrá je tahle pasáž:
But having a list like [1,2,3] has nothing to do with monads. Calling every list “the list monad”, or calling every situation where a list would be useful a situation where “you want the List monad” is misleading, false, and just leads to more confusion.
[...]
Even more wrong but you couldn’t really get more wrong in the first place: Use the list monoid and filter even over a list from one to one hundred.
Nakolik to můžu posoudit, IO je z hlediska typů a algebry totéž jako List. A kdyby někdo řekl, že k práci s listy potřebuje člověk znát CT, poslali bysme ho nejspíš přímou cestou do... psychiatrické léčebny? :)
nemůžu si pomoct, ale ten článek je fakticky chybný
There is nothing that has to do with monads at all in printing a string.
a co když chci řetězec načíst a vypsat?
a analogie se seznamem je úplně mimo
Jo, ten článek je dost mimo. Ale na druhou stranu je pravda, že ve FP je monáda kde co, takže by to slovo šlo použít k popisu mnoha věcí, čímž ztrácí účinek (zvlášť když se tak blbě vysvětluje). Ne nadarmo se teorii kategorií říká "abstract nonsense".
-
Sčítání na celých číslech není grupa?
Není. Grupa je nějaká množina spolu s nějakou operací, jež splňuje nějaké axiomy.
Ach jo. A já jsem myslel, že se začneme bavit jako lidi :( Teď už fakt rýpeš jenom tak ze sportu, že jo? Přiznej se :)
Myslím, že kdo chce chápat a pojem grupa zná, ten v pohodě chápe, a není potřeba vypisovat "uspořádaná dvojice (Z,+), kde Z jsou celá čísla a + je operace sčítání definovaná [následuje definice sčítání], je grupa, přičemž grupa je definována [následuje definice grupy]".
Tím jsme opět u přesnosti vyjadřování, ani do toho nebudu tahat matiku, protože v případě definic by mělo být přesné vyjadřování normou všude
Je škoda, že se stejným svatým zápalem nepožaduješ po v-ovi přesnou definici monády a neprotestuješ proti termínu "IO monáda", který je o řád nepřesnější než pojem "sčítání na celých číslech".
Bylo by to užitečné, protože bys aspoň sáhodlouze vypsal to, co jsem napsal jenom ve zkratce. Krásně by pak bylo vidět, jak nesmyslné je tvrzení "v Haskellu se io dělá pomocí monády".
-
Sčítání na celých číslech není grupa?
Není. Grupa je nějaká množina spolu s nějakou operací, jež splňuje nějaké axiomy.
Ach jo. A já jsem myslel, že se začneme bavit jako lidi :( Teď už fakt rýpeš jenom tak ze sportu, že jo? Přiznej se :)
Myslím, že kdo chce chápat a pojem grupa zná, ten v pohodě chápe, a není potřeba vypisovat "uspořádaná dvojice (Z,+), kde Z jsou celá čísla a + je operace sčítání definovaná [následuje definice sčítání], je grupa, přičemž grupa je definována [následuje definice grupy]".
Tím jsme opět u přesnosti vyjadřování, ani do toho nebudu tahat matiku, protože v případě definic by mělo být přesné vyjadřování normou všude
Je škoda, že se stejným svatým zápalem nepožaduješ po v-ovi přesnou definici monády a neprotestuješ proti termínu "IO monáda", který je o řád nepřesnější než pojem "sčítání na celých číslech".
Bylo by to užitečné, protože bys aspoň sáhodlouze vypsal to, co jsem napsal jenom ve zkratce. Krásně by pak bylo vidět, jak nesmyslné je tvrzení "v Haskellu se io dělá pomocí monády".
1) U definic jde ale hlavně o ty, co nějaký pojem neznají. Kdybys někomu neznalému vysvětloval grupy na příkladu a řekl, že sčítání na celých číslech je grupa, tak ho zmateš. Čili bavme se ne jako lidi (co to má vlastně vůbec znamenat?), ale jako matematici nebo computer scientists.
2) Tahle diskuze mě nijak zvlášť nezajímá a definici monády člověk najde na Wikipedii a milionech blogů.
-
1) U definic jde ale hlavně o ty, co nějaký pojem neznají. Kdybys někomu neznalému vysvětloval grupy na příkladu a řekl, že sčítání na celých číslech je grupa, tak ho zmateš.
Bingo! A to je presne pointa toho clanku a duvod, proc jsem ho zminil: pokud nekdo tvrdi, ze clovek potrebuje pochopit monady k tomu, aby mohl naprogramovat io v Haskellu, tak je to stejne nesmyslne, jako tvrdit, ze clovek musi pochopit grupy k tomu, aby mohl scitat cela cisla. Pokud to udelas, "tak ho zmateš"(cit zboj) - presne! A o tom je prave ten clanek.
Čili bavme se ne jako lidi (co to má vlastně vůbec znamenat?), ale jako matematici nebo computer scientists.
Grupu jsem pouzil jako priklad, o kterem jsem predpokladal, ze jeji definici kazdy zna, nebo si ji snadno najde. Nebavime se o definici grupy a nevim, proc bych ji mel definovat.
-
Jo, ten článek je dost mimo. Ale na druhou stranu je pravda, že ve FP je monáda kde co, takže by to slovo šlo použít k popisu mnoha věcí, čímž ztrácí účinek (zvlášť když se tak blbě vysvětluje). Ne nadarmo se teorii kategorií říká "abstract nonsense".
souhlasím, mi právě strašně lezou na nervy lidi, kteří v tom chtějí dělat ještě větší zmatek (např. zaváděním nové terminologie)
-
souhlasím, mi právě strašně lezou na nervy lidi, kteří v tom chtějí dělat ještě větší zmatek (např. zaváděním nové terminologie)
A proc teda nenapises konkretne, co je tam spatne? Jakou "novou terminologii"? "IO akce"? Jako treba tady: https://wiki.haskell.org/IO_inside#IO_actions_as_values ? Nebo?
-
Jo, ten článek je dost mimo. Ale na druhou stranu je pravda, že ve FP je monáda kde co, takže by to slovo šlo použít k popisu mnoha věcí, čímž ztrácí účinek (zvlášť když se tak blbě vysvětluje). Ne nadarmo se teorii kategorií říká "abstract nonsense".
souhlasím, mi právě strašně lezou na nervy lidi, kteří v tom chtějí dělat ještě větší zmatek (např. zaváděním nové terminologie)
Tak to dopadá, když do toho kafrají lidi, co tomu nerozumí. Začnou kritizovat zavedenou (a logickou) terminologii, vymyslí si nová pojmenování a tím z toho vznikne guláš. A pak ještě ten svůj guláš (bez znalosti oné zavedené terminologie) obhajují jako lepší nebo přirozenější. To je, jako kdybych Angličanům tvrdil, ať zruší všechny složené časy, protože jsou nesmyslné a ke všemu stačí simple past.
-
Začnou kritizovat zavedenou (a logickou) terminologii,
Zboji, ted zase kritizujes pro pkritiku, nebo opravdu nechapes pointu toho clanku?! (tomu se mi nechce verit) Ten clanek prece nekritizuje zavedenou terminologii, ani nenavrhuje zadnou jinou, ale kritizuje zpusob vysvetlovani a pouzivani dobre definovanych pojmu tam, kde jsou uplne irelevantni ("dva integery sectete pomoci plus-grupy").
-
("dva integery sectete pomoci plus-grupy").
ne, nesečtete, uděláto to pomocí operace "sčítání"
IO akce zřetězíte pomocí funkce třídy Monad zvané lidově "bind" a teď viz můj první dnešní příspěvěk
-
Začnou kritizovat zavedenou (a logickou) terminologii,
Zboji, ted zase kritizujes pro pkritiku, nebo opravdu nechapes pointu toho clanku?! (tomu se mi nechce verit) Ten clanek prece nekritizuje zavedenou terminologii, ani nenavrhuje zadnou jinou, ale kritizuje zpusob vysvetlovani a pouzivani dobre definovanych pojmu tam, kde jsou uplne irelevantni ("dva integery sectete pomoci plus-grupy").
Nechápu, k čemu tak dlouhý článek, když se ta "pointa" dá vyjádřit jednou větou. Jinak monády se taky dají vysvětlit velice jednoduše.
-
monády se taky dají vysvětlit velice jednoduše.
tak ukažte :)
-
("dva integery sectete pomoci plus-grupy").
ne, nesečtete, uděláto to pomocí operace "sčítání"
IO akce zřetězíte pomocí funkce třídy Monad zvané lidově "bind" a teď viz můj první dnešní příspěvěk
No dyt to rikam propanajana, ne?!
"abyste mohli udelat IO, musite pochopit monady" ~ "abyste mohli scitat integery, musite pochopit grupy"
"jak vypisu retezec? Pomoci IO Monady!" ~ "Jak sectu dva integery? Pomoci Int Grupy!"
"ukažte jak bez využití funkcí třídy monáda načtet[e] a vypíšete řetězec" ~ "ukazte, jak bez vyuziti tridy grupa sectu integery"
"k programovani v haskellu je potreba znat teorii kategorii" ~ "k scitani integeru je potreba znat abstraktni algebru"
uff, ja uz na to asi nemam silu...
-
"ukažte jak bez využití funkcí třídy monáda načtet[e] a vypíšete řetězec" ~ "ukazte, jak bez vyuziti tridy grupa sectu integery"
- a na tomhle to je videt uplne ze vseho nejlip. Zadnou tridu Monad totiz vubec nepotrebuju. Potrebuju jenom ty operace, ktere vytvari IO akce, retezi je, poslou je do runtimu. Zadna trida Monad vubec nemusi existovat, k io ji vubec nepotrebuju.
-
("dva integery sectete pomoci plus-grupy").
ne, nesečtete, uděláto to pomocí operace "sčítání"
IO akce zřetězíte pomocí funkce třídy Monad zvané lidově "bind" a teď viz můj první dnešní příspěvěk
No dyt to rikam propanajana, ne?!
"abyste mohli udelat IO, musite pochopit monady" ~ "abyste mohli scitat integery, musite pochopit grupy"
"jak vypisu retezec? Pomoci IO Monady!" ~ "Jak sectu dva integery? Pomoci Int Grupy!"
"ukažte jak bez využití funkcí třídy monáda načtet[e] a vypíšete řetězec" ~ "ukazte, jak bez vyuziti tridy grupa sectu integery"
"k programovani v haskellu je potreba znat teorii kategorii" ~ "k scitani integeru je potreba znat abstraktni algebru"
uff, ja uz na to asi nemam silu...
Si z toho asi děláš ř*ť (?)... Teda beru to, cos teď napsal, jako (pokus o) vtip, ale odpovím vážně: Když sčítám dvě celá čísla, tak ta grupa tam implicitně je, jen o ní nemusím mluvit (a třeba ani vědět). Ale když to vím, nepřekvapí mě, že úplně stejný objekt - grupa - se používá třeba v kvantových výpočtech (jen nad jinou množinou, ať mě zase nechytáš za slovo). Prostě abstrakce je mnohdy užitečná (když zjistím, že dva na první pohled nesouvisející objekty jsou grupa, můžu s nimi najednou pracovat stejně, podobně jako když dva různé objekty jsou monáda, tak na ně můžu použít stejný (generický) algoritmus). Jediná otázka je, jak hluboko chce člověk v té abstrakci jít.
-
monády se taky dají vysvětlit velice jednoduše.
tak ukažte :)
Právě hledám ten článek, na který jsem nedávno narazil, kde to je.
-
"ukažte jak bez využití funkcí třídy monáda načtet[e] a vypíšete řetězec" ~ "ukazte, jak bez vyuziti tridy grupa sectu integery"
- a na tomhle to je videt uplne ze vseho nejlip. Zadnou tridu Monad totiz vubec nepotrebuju. Potrebuju jenom ty operace, ktere vytvari IO akce, retezi je, poslou je do runtimu. Zadna trida Monad vubec nemusi existovat, k io ji vubec nepotrebuju.
řeč je o haskellu...
btw připomělo mi to problémy některých lidí s ukazateli v cčku
-
Super, uz se blizime k pointe!
Když sčítám dvě celá čísla, tak ta grupa tam implicitně je, jen o ní nemusím mluvit (a třeba ani vědět). Ale když to vím, nepřekvapí mě, že úplně stejný objekt - grupa - se používá třeba v kvantových výpočtech (jen nad jinou množinou, ať mě zase nechytáš za slovo). Prostě abstrakce je mnohdy užitečná (když zjistím, že dva na první pohled nesouvisející objekty jsou grupa, můžu s nimi najednou pracovat stejně, podobně jako když dva různé objekty jsou monáda, tak na ně můžu použít stejný (generický) algoritmus). Jediná otázka je, jak hluboko chce člověk v té abstrakci jít.
Když provadim retezeni IO operaci, tak ta monada tam implicitně je, jen o ní nemusím mluvit (a třeba ani vědět).
Ale když to vím, nepřekvapí mě, že úplně stejný objekt - monada - se používá třeba v retezeni listu (jen nad jinou množinou, ať mě zase nechytáš za slovo). Prostě abstrakce je mnohdy užitečná (když zjistím, že dva na první pohled nesouvisející objekty jsou monada, můžu s nimi najednou pracovat stejně, [...], tak na ně můžu použít stejný (generický) algoritmus). Jediná otázka je, jak hluboko chce člověk v té abstrakci jít.
...a tramtadada! Pointa je....
K tomu, abych nekomu vysvetlil, jak se v Haskellu dela IO, nepotrebuju slovo "Monada" vubec pouzit. Ani ho nebudu nijak opisovat. Proste mu ukazu par operaci, kde jedna vytvari IO akci "nacti", jina provadi retezeni IO akci a dalsi vytvari IO akci "vypis".
Ergo... K tomu, abych v Haskellu programoval, nutne pojem Monada vubec nemusim znat, stejne jako ho nemusim znat, kdyz v Javascriptu pouzivam promisy nebo listy (oboje to "jsou monady"*). A uz vubec nepotrebuju znat pojmy funktor, prirozena transformace a bla bla bla.
* ne zboji, sorry, formalne presne to fakt vypisovat nebudu
-
btw připomělo mi to problémy některých lidí s ukazateli v cčku
Jenze s pouzitim monadovych operaci nikdo zadny problem nema. I ten nejprostsi javascriptar dokaze promisy bez problemu pouzivat. To, s cim maji lidi problem, je (pro ne) nestravitelne obecny a matouci zpusob vysvetlovani. Coz presne rika ten "zcela mylny" clanek.
-
Super, uz se blizime k pointe!
Když sčítám dvě celá čísla, tak ta grupa tam implicitně je, jen o ní nemusím mluvit (a třeba ani vědět). Ale když to vím, nepřekvapí mě, že úplně stejný objekt - grupa - se používá třeba v kvantových výpočtech (jen nad jinou množinou, ať mě zase nechytáš za slovo). Prostě abstrakce je mnohdy užitečná (když zjistím, že dva na první pohled nesouvisející objekty jsou grupa, můžu s nimi najednou pracovat stejně, podobně jako když dva různé objekty jsou monáda, tak na ně můžu použít stejný (generický) algoritmus). Jediná otázka je, jak hluboko chce člověk v té abstrakci jít.
Když provadim retezeni IO operaci, tak ta monada tam implicitně je, jen o ní nemusím mluvit (a třeba ani vědět).
Ale když to vím, nepřekvapí mě, že úplně stejný objekt - monada - se používá třeba v retezeni listu (jen nad jinou množinou, ať mě zase nechytáš za slovo). Prostě abstrakce je mnohdy užitečná (když zjistím, že dva na první pohled nesouvisející objekty jsou monada, můžu s nimi najednou pracovat stejně, [...], tak na ně můžu použít stejný (generický) algoritmus). Jediná otázka je, jak hluboko chce člověk v té abstrakci jít.
...a tramtadada! Pointa je....
K tomu, abych nekomu vysvetlil, jak se v Haskellu dela IO, nepotrebuju slovo "Monada" vubec pouzit. Ani ho nebudu nijak opisovat. Proste mu ukazu par operaci, kde jedna vytvari IO akci "nacti", jina provadi retezeni IO akci a dalsi vytvari IO akci "vypis".
Ergo... K tomu, abych v Haskellu programoval, nutne pojem Monada vubec nemusim znat, stejne jako ho nemusim znat, kdyz v Javascriptu pouzivam promisy nebo listy (oboje to "jsou monady"*). A uz vubec nepotrebuju znat pojmy funktor, prirozena transformace a bla bla bla.
* ne zboji, sorry, formalne presne to fakt vypisovat nebudu
Formálně by to bylo "monoid v kategorii endofunktorů", stručně a jasně ;)
-
Formálně by to bylo "monoid v kategorii endofunktorů", stručně a jasně ;)
No prave :) Chtel jsem se v-a zeptat, jestli "jednoduse" ma znamenat "nejstrucneji" a pouzit tuhle okridlenou vetu, ale bylo mi to blby. No tak jsi to udelal za me, to jsem rad. :)
...a navic je to takova krasna tecka za touhle debatou, ktera krasne ilustruje, jak se tohle tema vzdycky zvrhne do tehle okridlene vety, kterou muze jako argument pouzit fakt jenom autista... Krasna ilustrace, ze kdyz nekdo monady neni schopen pochopit, nemusi to vubec byt jeho chyba...
-
Formálně by to bylo "monoid v kategorii endofunktorů", stručně a jasně ;)
No prave :) Chtel jsem se v-a zeptat, jestli "jednoduse" ma znamenat "nejstrucneji" a pouzit tuhle okridlenou vetu, ale bylo mi to blby. No tak jsi to udelal za me, to jsem rad. :)
...a navic je to takova krasna tecka za touhle debatou, ktera krasne ilustruje, jak se tohle tema vzdycky zvrhne do tehle okridlene vety, kterou muze jako argument pouzit fakt jenom autista... Krasna ilustrace, ze kdyz nekdo monady neni schopen pochopit, nemusi to vubec byt jeho chyba...
nevím, které "jednoduse" myslíte
tu větu bych nepoužil, nejsem žádný matematik, myslím, že i zboj ji teď použil v žertu (asi)
"jednoduše" v tomto kontextu pro mě znamená nevyhýbat se slovu monáda, když mluvím o použití monadických operací
-
Formálně by to bylo "monoid v kategorii endofunktorů", stručně a jasně ;)
No prave :) Chtel jsem se v-a zeptat, jestli "jednoduse" ma znamenat "nejstrucneji" a pouzit tuhle okridlenou vetu, ale bylo mi to blby. No tak jsi to udelal za me, to jsem rad. :)
...a navic je to takova krasna tecka za touhle debatou, ktera krasne ilustruje, jak se tohle tema vzdycky zvrhne do tehle okridlene vety, kterou muze jako argument pouzit fakt jenom autista... Krasna ilustrace, ze kdyz nekdo monady neni schopen pochopit, nemusi to vubec byt jeho chyba...
Nemusí, ale bývá. Jinak stejný člověk vyřkl stejně památnou vetu "Objective-C je skvělý jazyk kombinující rychlost Smalltalku a bezpečnost Céčka".
-
Formálně by to bylo "monoid v kategorii endofunktorů", stručně a jasně ;)
No prave :) Chtel jsem se v-a zeptat, jestli "jednoduse" ma znamenat "nejstrucneji" a pouzit tuhle okridlenou vetu, ale bylo mi to blby. No tak jsi to udelal za me, to jsem rad. :)
...a navic je to takova krasna tecka za touhle debatou, ktera krasne ilustruje, jak se tohle tema vzdycky zvrhne do tehle okridlene vety, kterou muze jako argument pouzit fakt jenom autista... Krasna ilustrace, ze kdyz nekdo monady neni schopen pochopit, nemusi to vubec byt jeho chyba...
nevím, které "jednoduse" myslíte
tu větu bych nepoužil, nejsem žádný matematik, myslím, že i zboj ji teď použil v žertu (asi)
"jednoduše" v tomto kontextu pro mě znamená nevyhýbat se slovu monáda, když mluvím o použití monadických operací
Jasně, že to bylo v žertu :)
-
...
...a tramtadada! Pointa je....
K tomu, abych nekomu vysvetlil, jak se v Haskellu dela IO, nepotrebuju slovo "Monada" vubec pouzit. Ani ho nebudu nijak opisovat. Proste mu ukazu par operaci, kde jedna vytvari IO akci "nacti", jina provadi retezeni IO akci a dalsi vytvari IO akci "vypis".
Ergo... K tomu, abych v Haskellu programoval, nutne pojem Monada vubec nemusim znat, stejne jako ho nemusim znat, kdyz v Javascriptu pouzivam promisy nebo listy (oboje to "jsou monady"*). A uz vubec nepotrebuju znat pojmy funktor, prirozena transformace a bla bla bla.
* ne zboji, sorry, formalne presne to fakt vypisovat nebudu
Formálně by to bylo "monoid v kategorii endofunktorů", stručně a jasně ;)
No konečně, ten mongoloid v kategorii endofunktorů už tomu dává smysl.
-
nevím, které "jednoduse" myslíte
Tohle: http://forum.root.cz/index.php?action=post;quote=163540;topic=13078.90
tu větu bych nepoužil, nejsem žádný matematik, myslím, že i zboj ji teď použil v žertu (asi)
Zadny zert v tom neni, je to presna odpoved na otazku. Akorat je to odpoved pro vetsinu lidi naprosto bezcenna - a presne presne presne o tomhle ten clanek je - ze lidi jsou zbytecne mateni formalne naprosto spravnymi odpovedmi, ktere jsou ale pro ne bezcenne a matouci. A pokud se jim to i presto podari pochopit, dojde k tomu aha-momentu, osvoji si tenhle slovnik a dalsim zajemcum daji presne tu stejnou matouci a v podstate bezcnennou odpoved.
"jednoduše" v tomto kontextu pro mě znamená nevyhýbat se slovu monáda, když mluvím o použití monadických operací
Ale ten clovek nechce vedet, co to je monada! On chce delat IO operace. To je presne to jadro pudla. Nechci vedet, co je to grupa, chci scitat cisla. Nezajima me vubec definice grupy. Nechci vedet, ze operace scitani ma nejake vlastnosti. Chci proste tu operaci pouzit - secist cisla.
Jo, jakmile si to osvojim, muzeme se bavit o tom, ze scitani cisel se da obecne popsat jako grupa -- uplne stejne jako kdyz se v Haskellu naucim pracovat s io akcemi, muzeme se potom bavit o tom, ze ty io operace + prislusny substrat je vlastne instance obecneho konceptu "monada". Ale nemusime. K tomu, abych io delal, to vubec nepotrebuju vedet, je to irelevantni.
-
nevím, které "jednoduse" myslíte
Tohle: http://forum.root.cz/index.php?action=post;quote=163540;topic=13078.90
tu větu bych nepoužil, nejsem žádný matematik, myslím, že i zboj ji teď použil v žertu (asi)
Zadny zert v tom neni, je to presna odpoved na otazku. Akorat je to odpoved pro vetsinu lidi naprosto bezcenna - a presne presne presne o tomhle ten clanek je - ze lidi jsou zbytecne mateni formalne naprosto spravnymi odpovedmi, ktere jsou ale pro ne bezcenne a matouci. A pokud se jim to i presto podari pochopit, dojde k tomu aha-momentu, osvoji si tenhle slovnik a dalsim zajemcum daji presne tu stejnou matouci a v podstate bezcnennou odpoved.
"jednoduše" v tomto kontextu pro mě znamená nevyhýbat se slovu monáda, když mluvím o použití monadických operací
Ale ten clovek nechce vedet, co to je monada! On chce delat IO operace. To je presne to jadro pudla. Nechci vedet, co je to grupa, chci scitat cisla. Nezajima me vubec definice grupy. Nechci vedet, ze operace scitani ma nejake vlastnosti. Chci proste tu operaci pouzit - secist cisla.
Jo, jakmile si to osvojim, muzeme se bavit o tom, ze scitani cisel se da obecne popsat jako grupa -- uplne stejne jako kdyz se v Haskellu naucim pracovat s io akcemi, muzeme se potom bavit o tom, ze ty io operace + prislusny substrat je vlastne instance obecneho konceptu "monada". Ale nemusime. K tomu, abych io delal, to vubec nepotrebuju vedet, je to irelevantni.
Nějak se opakuješ, zkus dodat nějaké argumenty ;)
-
Nějak se opakuješ, zkus dodat nějaké argumenty ;)
Dodam. Hned po tom, co popisete presne chyby v tom clanku, kdyz jste se nad tim tvrzenim o jeho chybnosti tady tak poplacali po ramenech :)
...jo a abych nezapomnel, taky jeste trva moje otazka, jake "nove pojmy" kdo zavadi. Na to jsem taky nedostal odpoved.
-
když chcete v haskellu sečíst dvě čísla, použijete operátor (+), co když chcete načíst a vypsat řetězec (echo)? potřebujete k tomu nějaký operátor?
Jistě. Stejně jako ke sčítání potřebuju nějaký operátor, k zřetězení seznamů potřebuju nějaký operátor, tak úplně stejně i k ZŘETĚZENÍ IO AKCÍ potřebuju nějaký operátor. Že ty operátory splňují nějaké zákony, díky čemuž ten komplex můžu nazývat "monáda" je úplně irelevantní k problému "jak zřetězím IO AKCE?" nebo "Jak provedu IO AKCI?". A nejenom, že to je irelevantní, ale pokud to není dostatečně pochopeno, je to vyloženě škodlivé, protože pak padají přesně tyhle dotazy.
Zkus se trochu oprostit od Haskellu a podívej se na to z nadhledu. Děti se prvně naučí sčítat celá čísla. Až o hooodně později se jenom některé z nich dozví, že vlastně to, co do té doby bez problémů dělaly, se dá popsat obecně a říká se tomu grupa. Stejně tak List i IO se oboje dá popsat obecně (jednotně,abstraktně) a tento obecný pojem je MONÁDA.
Pojem "IO monáda" je stejně nesmyslný a zhoubný jako pojem "sčítání grupa". Ten naštěstí nikdo nepoužívá, tak blbí nejsme.
Já se obávám, že tihle lidé zkrátka budou trvat na tom, že než se v první třídě děti naučí počítat, tak by jim nejprve měla být vysvětlena algebra, teorie těles, grup apod. Bez toho, aby prvňáček věděl, co je komutativita, a bez chápání důkazu toho, že operace sčítání je pro přirozená čísla komutativní, prostě sčítat jednociferná čísla nesmí.
Já na vašem místě bych ten boj prostě vzdal, nestojí to za to. Mé děti umí sčítat i malou násobilku bez toho, že by věděly, co je "komutativní monoid". Přestože tomu někteří místní diskutující nebudou chtít uvěřit, protože bez chápání vysokoškolské algebry přece sčítat nejde? Nebo alespoň ne správně.
-
Já na vašem místě bych ten boj prostě vzdal, nestojí to za to.
Asi mate pravdu. Kdyz mne je to lito, protoze tenhle pristup bohuzel zbytecne spoustu lidi od FP uplne zbytecne odradi :( No, snad se objevi dost lidi, kteri tu zpusobenou skodu budou umet napravit...
Tak aspon vtipek na zaver:
Just today, I showed a coworker (we are not a functional shop, mind you) how to simplify his code by isolating his control flow by building a function which chains functions and passes the results of one into the input of the other, and not having to muck about with intermediate state. He was sold. Then someone else looked at the code and was like "Monads!" and he looked shocked, enlightened, and dismayed. The dismay was actually because he expected his understanding of monads to be some sort of epoch in his programming career, an epiphany accompanied by trumpets and angels singing. But it was as mundane as it should be.
https://groups.google.com/forum/#!topic/elm-discuss/hEvS6DgNbwM [zvyrazneni moje]
-
když chcete v haskellu sečíst dvě čísla, použijete operátor (+), co když chcete načíst a vypsat řetězec (echo)? potřebujete k tomu nějaký operátor?
Jistě. Stejně jako ke sčítání potřebuju nějaký operátor, k zřetězení seznamů potřebuju nějaký operátor, tak úplně stejně i k ZŘETĚZENÍ IO AKCÍ potřebuju nějaký operátor. Že ty operátory splňují nějaké zákony, díky čemuž ten komplex můžu nazývat "monáda" je úplně irelevantní k problému "jak zřetězím IO AKCE?" nebo "Jak provedu IO AKCI?". A nejenom, že to je irelevantní, ale pokud to není dostatečně pochopeno, je to vyloženě škodlivé, protože pak padají přesně tyhle dotazy.
Zkus se trochu oprostit od Haskellu a podívej se na to z nadhledu. Děti se prvně naučí sčítat celá čísla. Až o hooodně později se jenom některé z nich dozví, že vlastně to, co do té doby bez problémů dělaly, se dá popsat obecně a říká se tomu grupa. Stejně tak List i IO se oboje dá popsat obecně (jednotně,abstraktně) a tento obecný pojem je MONÁDA.
Pojem "IO monáda" je stejně nesmyslný a zhoubný jako pojem "sčítání grupa". Ten naštěstí nikdo nepoužívá, tak blbí nejsme.
Já se obávám, že tihle lidé zkrátka budou trvat na tom, že než se v první třídě děti naučí počítat, tak by jim nejprve měla být vysvětlena algebra, teorie těles, grup apod. Bez toho, aby prvňáček věděl, co je komutativita, a bez chápání důkazu toho, že operace sčítání je pro přirozená čísla komutativní, prostě sčítat jednociferná čísla nesmí.
Já na vašem místě bych ten boj prostě vzdal, nestojí to za to. Mé děti umí sčítat i malou násobilku bez toho, že by věděly, co je "komutativní monoid". Přestože tomu někteří místní diskutující nebudou chtít uvěřit, protože bez chápání vysokoškolské algebry přece sčítat nejde? Nebo alespoň ne správně.
naprostá demagogie, tohle tu nikdo netvrdil
-
Já na vašem místě bych ten boj prostě vzdal, nestojí to za to.
Asi mate pravdu. Kdyz mne je to lito, protoze tenhle pristup bohuzel zbytecne spoustu lidi od FP uplne zbytecne odradi :( No, snad se objevi dost lidi, kteri tu zpusobenou skodu budou umet napravit...
Tak aspon vtipek na zaver:
Just today, I showed a coworker (we are not a functional shop, mind you) how to simplify his code by isolating his control flow by building a function which chains functions and passes the results of one into the input of the other, and not having to muck about with intermediate state. He was sold. Then someone else looked at the code and was like "Monads!" and he looked shocked, enlightened, and dismayed. The dismay was actually because he expected his understanding of monads to be some sort of epoch in his programming career, an epiphany accompanied by trumpets and angels singing. But it was as mundane as it should be.
https://groups.google.com/forum/#!topic/elm-discuss/hEvS6DgNbwM [zvyrazneni moje]
jak dlouho vlastně programujete v haskellu?
-
jak dlouho vlastně programujete v haskellu?
Vubec.
-
jak dlouho vlastně programujete v haskellu?
Vubec.
tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu
-
když chcete v haskellu sečíst dvě čísla, použijete operátor (+), co když chcete načíst a vypsat řetězec (echo)? potřebujete k tomu nějaký operátor?
Jistě. Stejně jako ke sčítání potřebuju nějaký operátor, k zřetězení seznamů potřebuju nějaký operátor, tak úplně stejně i k ZŘETĚZENÍ IO AKCÍ potřebuju nějaký operátor. Že ty operátory splňují nějaké zákony, díky čemuž ten komplex můžu nazývat "monáda" je úplně irelevantní k problému "jak zřetězím IO AKCE?" nebo "Jak provedu IO AKCI?". A nejenom, že to je irelevantní, ale pokud to není dostatečně pochopeno, je to vyloženě škodlivé, protože pak padají přesně tyhle dotazy.
Zkus se trochu oprostit od Haskellu a podívej se na to z nadhledu. Děti se prvně naučí sčítat celá čísla. Až o hooodně později se jenom některé z nich dozví, že vlastně to, co do té doby bez problémů dělaly, se dá popsat obecně a říká se tomu grupa. Stejně tak List i IO se oboje dá popsat obecně (jednotně,abstraktně) a tento obecný pojem je MONÁDA.
Pojem "IO monáda" je stejně nesmyslný a zhoubný jako pojem "sčítání grupa". Ten naštěstí nikdo nepoužívá, tak blbí nejsme.
Já se obávám, že tihle lidé zkrátka budou trvat na tom, že než se v první třídě děti naučí počítat, tak by jim nejprve měla být vysvětlena algebra, teorie těles, grup apod. Bez toho, aby prvňáček věděl, co je komutativita, a bez chápání důkazu toho, že operace sčítání je pro přirozená čísla komutativní, prostě sčítat jednociferná čísla nesmí.
Já na vašem místě bych ten boj prostě vzdal, nestojí to za to. Mé děti umí sčítat i malou násobilku bez toho, že by věděly, co je "komutativní monoid". Přestože tomu někteří místní diskutující nebudou chtít uvěřit, protože bez chápání vysokoškolské algebry přece sčítat nejde? Nebo alespoň ne správně.
naprostá demagogie, tohle tu nikdo netvrdil
Zvykej si na úroveň Prýmkovy (pseudo)argumentace ;)
V tomto konkrétním případě v podstatě vehementně tvrdí, že nemá smysl používat slovo "kladivo" (dokonce, že je to nesmyslné), protože když vytáhnu křováka z buše a řeknu mu "podej mi kladivo", tak nebude stejně vědět, která bije. Takže podle něj je lepší říct mu "podej mi ten klacek s kusem železa" (bude-li tedy křovák vědět, co je železo, s klackem asi problém nebude), jenže pak se bude divit, až bezděčně máchne a usekne si prsty sekerou. Přitom kladivo a sekera se *funkcionálně* prolínají, jde "jen" o úhel natočení. V IT naštěstí useknutí prstu nehrozí, nanejvýš útok tyranosaura :)
-
tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu
Mate volne pole mi to vyvratit. Zatim jste se ale jenom omezil na konstatovani, ze clanek je chybny, srovnani s Listem je uplne mimo, nekdo zavadi novou terminologii atd. atd. - vsechno bez jedineho argumentu.
...a vubec netusim, jak to souvisi s tim, jestli programuju nebo neprogramuju v Haskellu. Nebo do te uz tak az prilis dlouhe a neplodne diskuse zacneme misto skutecnych argumentu tahat vykriky ad hominem?
-
jak dlouho vlastně programujete v haskellu?
Vubec.
tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu
Howgh :) Téma se podle mne vyčerpalo, navrhuji přejít k jinému problému, třeba jestli je goto zlo ;)
-
tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu
Mimochodem, neni zadna "monada v haskellu". Monada je pojem z algebry/CT. Trida Monad v Haskellu je jenom implementace toho konceptu. A s grupami to srovnavam proto, ze grupa, monoid a .... monada jsou velmi pribuzne pojmy.
-
jak dlouho vlastně programujete v haskellu?
Vubec.
tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu
Ono by to porovnání nebylo úplně debilní až do momentu, kdy začal srovnávat "třídy" Monad a Group, protože analogii té první by byla "třída" GroupElement. Pak by se dalo bavit o podrobnostech a souvislostech a došli bychom k tomu, že to v (některých) jazycích je.
-
jak dlouho vlastně programujete v haskellu?
Vubec.
tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu
Ono by to porovnání nebylo úplně debilní až do momentu, kdy začal srovnávat "třídy" Monad a Group, protože analogii té první by byla "třída" GroupElement. Pak by se dalo bavit o podrobnostech a souvislostech a došli bychom k tomu, že to v (některých) jazycích je.
já jsem možná i něco takové napsal, nebo vy, určitě jsem chtěl, sčítání a celé čísla jsou grupa shodou okolností, ale pro načtení a vypsání řetězce potřebuju aby IO byla monáda abych ty dvě akce mohl "sečíst" čili bidnout
-
sčítání a celé čísla jsou grupa shodou okolností, ale pro načtení a vypsání řetězce potřebuju aby IO byla monáda abych ty dvě akce mohl "sečíst" čili bidnout
To je velmi komicke tvrzeni. Operace scitani intu (spolu s mnozinou intu, at zbojovi nepraskne zilka) je grupa uplne stejne "nahodou", jako jsou jsou "nahodou" operace bind, return, ... plus mnozina IO akci monadou.
Oboje je proste nejaka mnozina a nejaka operace/vic operaci a pokud ten -celkem- (oprava: celek) splnuje nejake vlastnosti, tak se tomu rika bug grupa nebo monada. Co je na tom tak tezkeho pochopit?
-
Formálně by to bylo "monoid v kategorii endofunktorů", stručně a jasně ;)
No prave :) Chtel jsem se v-a zeptat, jestli "jednoduse" ma znamenat "nejstrucneji" a pouzit tuhle okridlenou vetu, ale bylo mi to blby. No tak jsi to udelal za me, to jsem rad. :)
...a navic je to takova krasna tecka za touhle debatou, ktera krasne ilustruje, jak se tohle tema vzdycky zvrhne do tehle okridlene vety, kterou muze jako argument pouzit fakt jenom autista... Krasna ilustrace, ze kdyz nekdo monady neni schopen pochopit, nemusi to vubec byt jeho chyba...
nevím, které "jednoduse" myslíte
tu větu bych nepoužil, nejsem žádný matematik, myslím, že i zboj ji teď použil v žertu (asi)
"jednoduše" v tomto kontextu pro mě znamená nevyhýbat se slovu monáda, když mluvím o použití monadických operací
Jinak tady to je v kontextu: https://books.google.ie/books?id=MXboNPdTv7QC&pg=PA138&lpg=PA138&dq=%22monoid+in+the+category+of+endofunctors%22+mac+lane&source=bl&ots=feQWTkH2Uw&sig=tv-1JwaMOygKGmFE2vM2FhJVS9o&hl=en&ei=5iWsTJCkBIPSsAPQwJ36Aw&sa=X&oi=book_result&ct=result&redir_esc=y#v=onepage&q&f=false
-
Mate volne pole mi to vyvratit. Zatim jste se ale jenom omezil na konstatovani, ze clanek je chybny, srovnani s Listem je uplne mimo, nekdo zavadi novou terminologii atd. atd. - vsechno bez jedineho argumentu.
začal jsem tímto:
There is nothing that has to do with monads at all in printing a string.
a co když chci řetězec načíst a vypsat?
pointa je v tom, že pojem monády nepotřebujete pro hello world, ale pro praktický program ("echo") už ano
zpětně uznávám, že jsem s interpretací článku asi zašel příliš daleko, stejně jako vy - přečtěte si "Edit:"
srovnání se seznamem je mimo, protože pro práci se seznamem class Monad nepotřebujete, kdežto pro io složitější než hello world ano
...a vubec netusim, jak to souvisi s tim, jestli programuju nebo neprogramuju v Haskellu. Nebo do te uz tak az prilis dlouhe a neplodne diskuse zacneme misto skutecnych argumentu tahat vykriky ad hominem?
mluvil jste o nepotřebě znalosti monád pro programování v haskellu, to IMHO implikuje zkušenost
-
naprostá demagogie, tohle tu nikdo netvrdil
Tak samozřejmě, že je to demagogie. Předvádíte ji tu vy, předvádí ji zboj. Předpokládám, že je to vaše preferovaná forma komunikace, tak jsem ji přijal a podřídil se vám.
Také jsem uvažoval, že bych zkusil nějakou tu manipulaci. Ale to mi moc nejde, bývám pak spíše směšný než vtipný. Ale třebas zboj je v tom výborný. Líbí se mi, jak mu Mirek nadhodí tři argumenty a zboj najde ten nejslabší a ten jediný torpéduje. Těm silnějším se vyhne. Plus otrávené studna "to je špatně, každý rozumný člověk ví, že je to špatně a jen úplný debil by neviděl, že je to špatně, takže není důvod se vůbec zmiňovat o tom, proč je to špatně". Připadá mi to trochu jako zpátky na základní škole. Jen čekám, kdy na něj vyrukujete stylem "Mirku! Kde máš čepici?!"
-
naprostá demagogie, tohle tu nikdo netvrdil
Tak samozřejmě, že je to demagogie. Předvádíte ji tu vy ...
prosím citaci
-
pointa je v tom, že pojem monády nepotřebujete pro hello world, ale pro praktický program ("echo") už ano
zpětně uznávám, že jsem s interpretací článku asi zašel příliš daleko, stejně jako vy - přečtěte si "Edit:"
srovnání se seznamem je mimo, protože pro práci se seznamem class Monad nepotřebujete, kdežto pro io složitější než hello world ano
Ten edit na tom ale vubec nic nemeni. K tomu, abych delal io potrebuji ty OPERACE bind, return, ... NEPOTREBUJI tridu Monad.
To, co chci, je vytvaret IO akce, retezit je a dostat z nich hodnotu. To jsou OPERACE.
...a pokud ty operace (spolu se substratem, at ma opet zboj radost) splnuji nejake podminky, tak se tomu dohromady rika monada. To ale vubec nepotrebuju (jako zacatecnik) vedet.
...uplne stejne jako k secteni dvou intu potrebuju OPERACI (+) a NEPOTREBUJI tridu Group.
...a uplne stejne jako ke zretezeni listu potrebuju OPERACI (::), ale NEPOTREBUJI, ale List byl instanci tridy Monad.
mluvil jste o nepotřebě znalosti monád pro programování v haskellu, to IMHO implikuje zkušenost
Ano, mam s Haskellem jistou zkusenost. Ale bezne v nem neprogramuju. Je to uplne irelevantni, protoze se bavime o obecnych konceptech.
-
tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu
Mimochodem, neni zadna "monada v haskellu". Monada je pojem z algebry/CT. Trida Monad v Haskellu je jenom implementace toho konceptu. A s grupami to srovnavam proto, ze grupa, monoid a .... monada jsou velmi pribuzne pojmy.
Monády a grupy mají společné to, že to není nikde kloudně vysvětleno na méně než několika stránkách. Ani ti, kteří význam těchto pojmů pochopili, je nedokáží jednoduše vysvětlit, ale zato je hojně používají.
-
až do momentu, kdy začal srovnávat "třídy" Monad a Group, protože analogii té první by byla "třída" GroupElement.
Ale pane kolego, vy nam zase pábíte! :)))
Teď budeme Prýmkovi omlacovat o hlavu, že obecná třída Group v Haskellu implementovat nejde?
Tak jo no, to je velmi konstruktivní a velmi k věci :))))
-
až do momentu, kdy začal srovnávat "třídy" Monad a Group, protože analogii té první by byla "třída" GroupElement.
Ale pane kolego, vy nam zase pábíte! :)))
Teď budeme Prýmkovi omlacovat o hlavu, že obecná třída Group v Haskellu implementovat nejde?
Tak jo no, to je velmi konstruktivní a velmi k věci :))))
proč by nešla? a já bych řek, že to je velmi k věci (viz můj příspěvek, který jste označil za komický)
-
Monády a grupy mají společné to, že to není nikde kloudně vysvětleno na méně než několika stránkách. Ani ti, kteří význam těchto pojmů pochopili, je nedokáží jednoduše vysvětlit, ale zato je hojně používají.
Monáda jako obecný pojem asi triviálně vysvětlit nejde. Je to prostě abstraktní koncept, který pokrývá úplně odlišné instance, proto to lidem neleze do hlavy.
Pointa je ale v tom, že nikomu monádu obecně vůbec vysvětlovat nepotřebuješ. Prostě mu řekneš "hochu, vem callbacky, které provádí io akce, a pomocí téhle operace bind je poskládej za sebe. bind zabezpečí, že se výstup jednoho callbacku předá na vstup druhého a když dojde k chybě, tak se ta chyba nepřenáší do dalšího callbacku".
A je vymalováno. Použil jsem slovo Monáda? Nepoužil. Pochopí to každej? Pochopí. Nahonil jsem si u toho ego a udělal ze všech nedouky? Neudělal. V tom má tahle metoda vysvětlení slabinu :)
-
až do momentu, kdy začal srovnávat "třídy" Monad a Group, protože analogii té první by byla "třída" GroupElement.
Ale pane kolego, vy nam zase pábíte! :)))
Teď budeme Prýmkovi omlacovat o hlavu, že obecná třída Group v Haskellu implementovat nejde?
Tak jo no, to je velmi konstruktivní a velmi k věci :))))
proč by nešla? a já bych řek, že to je velmi k věci (viz můj příspěvek, který jste označil za komický)
Teď Prýmek jen ukázal, jak tomu vůbec nerozumí. Já v této diskusi končím (minimálně do doby, než se Prýmek naučí rozumět psanému slovu). (Až na jeden poslední příspěvek, hold on.)
-
(viz můj příspěvek, který jste označil za komický)
Komické je tvrdit, že grupa je grupa náhodou, zatímco monáda je monádou, protože to je potřeba.
-
No začátečník IMO prostě použije "do" notaci v IO monadu v vůbec nepotřebuje vědět, co monada je. Poměrně brzo narazí na rozdíl mezi "pure" a "monadic" výpočtem, tak se s tím nějak popere (vezme to jako nějakou "divnou" kontejnerizaci) a pořád nemusí tušit, co to monáda je. A program už může napsat docela slušný.
-
(viz můj příspěvek, který jste označil za komický)
Komické je tvrdit, že grupa je grupa náhodou, zatímco monáda je monádou, protože to je potřeba.
to já ale netvrdím, jestli jste to tak pochopil, tak je to chyba, těžko říct na čí straně
-
(vezme to jako nějakou "divnou" kontejnerizaci)
Proč? Uplne staci, kdyz si uvedomi, jestli funkce pracuje s hodnotami nebo akcemi.
Jeste jsem neslysel, ze by javascriptista mel problem s orlisenim toho, kdyz fce vraci int a Promise[int]
-
No začátečník IMO prostě použije "do" notaci v IO monadu v vůbec nepotřebuje vědět, co monada je. Poměrně brzo narazí na rozdíl mezi "pure" a "monadic" výpočtem, tak se s tím nějak popere (vezme to jako nějakou "divnou" kontejnerizaci) a pořád nemusí tušit, co to monáda je. A program už může napsat docela slušný.
+1
taky se velmi brzo začne zajímat o to :: Monad m => .... u všech těch funkcí
-
(vezme to jako nějakou "divnou" kontejnerizaci)
Proč? Uplne staci, kdyz si uvedomi, jestli funkce pracuje s hodnotami nebo akcemi.
Jeste jsem neslysel, ze by javascriptista mel problem s orlisenim toho, kdyz fce vraci int a Promise[int]
Jasně, pokud zná promisy, tak jo. Já je v té době pořádně neznal (ty frameworky s tím akorát začínaly), tak jsem si to vysvětloval jinak. Ale programy jsem byl schopen tvořit výrazně dřív, než jsem do detailu znal category theory kolem monády.... (ne že bych ji moc znal dneska).
-
až do momentu, kdy začal srovnávat "třídy" Monad a Group, protože analogii té první by byla "třída" GroupElement.
Ale pane kolego, vy nam zase pábíte! :)))
Teď budeme Prýmkovi omlacovat o hlavu, že obecná třída Group v Haskellu implementovat nejde?
Tak jo no, to je velmi konstruktivní a velmi k věci :))))
proč by nešla? a já bych řek, že to je velmi k věci (viz můj příspěvek, který jste označil za komický)
Prýmek měl na mysli toto (v Haskellu nedělám, proto Swift, ale klidně to jde brát jako pseudokód):
protocol GroupElement {
func operation(x:Self) -> Self
var unit:Self { get }
var inverse:Self { get }
}
protocol AdditiveGroupElement : GroupElement, Addible {}
extension AdditiveGroupElement {
func operation(x:Self) -> Self { return self + x }
var unit:Self { return zero }
var inverse:Self { return -self }
}
extension Int : AdditiveGroupElement {}
Swift ve standardní knihovně něco podobného má (protokol ArithmeticType apod.). S monádami to funguje úplně stejně (elegantně).
-
Komické je tvrdit, že grupa je grupa náhodou, zatímco monáda je monádou, protože to je potřeba.
to já ale netvrdím, jestli jste to tak pochopil, tak je to chyba, těžko říct na čí straně
Ok, tady jsem to možná trochu posunul, tak zpět:
celé čísla jsou grupa shodou okolností, ale pro načtení a vypsání řetězce potřebuju aby IO byla monáda abych ty dvě akce mohl "sečíst" čili bidnout
Z faktu, že množina IO akcí + bind atd. je monádou, plynou nějaké důsledky. Konkrétně například to, že složím-li dvě IO akce za sebe pomocí bindu, jsem pořád ve stejném typu IO ().
Z faktu, že (Int,(+)) je grupa, plynou taky nějaké důsledky, například to, že složím-li sva Inty pomocí operace (+), jsem pořád ve stejném typu Int.
Opravdu je (Int,(+)) grupou "náhodou"? Opravdu nemá grupa a monáda nic společného a je to jenom Prymkova mimozita?
-
Prýmek měl na mysli toto (v Haskellu nedělám, proto Swift, ale klidně to jde brát jako pseudokód):
Jenom skromný dotaz: ten "důkaz že tomu vůbec nerozumím", spočívá v tom, že jsem použil jiný název nebo ještě v něčem jiném? Pokud ano, v čem? (A poprosím, jestli se můžeme pokusit opět držet tón vzájemného respektu, pokud to nejde, tak raději neodpovídej)
-
Prýmek měl na mysli toto (v Haskellu nedělám, proto Swift, ale klidně to jde brát jako pseudokód):
Jenom skromný dotaz: ten "důkaz že tomu vůbec nerozumím", spočívá v tom, že jsem použil jiný název nebo ještě v něčem jiném? Pokud ano, v čem? (A poprosím, jestli se můžeme pokusit opět držet tón vzájemného respektu, pokud to nejde, tak raději neodpovídej)
Celý tento příspěvek (forma i obsah): http://forum.root.cz/index.php?topic=13078.msg163580#msg163580. A s tím respektem začni u sebe (tentokrát to neříkám v žertu).
-
Opravdu nemá grupa a monáda nic společného a je to jenom Prymkova mimozita?
mají něco společného, není to prýmkova mimozita, citovaný text se pokusím přeformulovat
-
Celý tento příspěvek (forma i obsah): http://forum.root.cz/index.php?topic=13078.msg163580#msg163580. A s tím respektem začni u sebe (tentokrát to neříkám v žertu).
Hm. Takže ten příspěvek se Swiftem nic nedokazoval. Dostatečným důkazem mé blbosti je můj příspěvek. A je to tak, protože to tak je.
Tak ok, beru na vědomí a nemám dalších otázek, ctihodnosti :)
-
Celý tento příspěvek (forma i obsah): http://forum.root.cz/index.php?topic=13078.msg163580#msg163580. A s tím respektem začni u sebe (tentokrát to neříkám v žertu).
Hm. Takže ten příspěvek se Swiftem nic nedokazoval. Dostatečným důkazem mé blbosti je můj příspěvek. A je to tak, protože to tak je.
Tak ok, beru na vědomí a nemám dalších otázek, ctihodnosti :)
on zboj asi myslel "Ale pane..."
-
citovaný text se pokusím přeformulovat
Super, díky! A pokud by to šlo, chtělo by to se vyvarovat obratů jako "je to monáda", kde není jasné, co je "to" a může to znamenat "nějaký typ patří do třídy Monad" nebo "tyto operace spolu se substrátem vytvářejí to, čemu se v algebře říká (silná) monáda."
-
citovaný text se pokusím přeformulovat
Super, díky! A pokud by to šlo, chtělo by to se vyvarovat obratů jako "je to monáda", kde není jasné, co je "to" a může to znamenat "nějaký typ patří do třídy Monad" nebo "tyto operace spolu se substrátem vytvářejí to, čemu se v algebře říká (silná) monáda."
takže vy tvrdíte, že mluvit o monádách v souvislosti s řetězením IO akcí v Haskellu je jako mluvit o grupách v souvislosti se sčítáním celých čísel a já to rozporuju, je to tak?
-
takže vy tvrdíte, že mluvit o monádách v souvislosti s řetězením IO akcí v Haskellu je jako mluvit o grupách v souvislosti se sčítáním celých čísel a já to rozporuju, je to tak?
To byste měl vědět vy, co rozporujete, já vám s tím těžko poradím :)
-
takže vy tvrdíte, že mluvit o monádách v souvislosti s řetězením IO akcí v Haskellu je jako mluvit o grupách v souvislosti se sčítáním celých čísel a já to rozporuju, je to tak?
To byste měl vědět vy, co rozporujete, já vám s tím těžko poradím :)
bezesporu máme spor, tvrdíte tedy to co tvrdím, že tvdíte?
-
bezesporu máme spor, tvrdíte tedy to co tvrdím, že tvdíte?
Aneb ztraceno v symlincích.
-
bezesporu máme spor, tvrdíte tedy to co tvrdím, že tvdíte?
Nevím, já té vaší formulaci nerozumím. Zatím mě můžete klidně nechat být a věnovat se sepsání svých výhrad s nějakými argumenty. Když na to tak kouknu:
- ten článek je fakticky chybný
- analogie se seznamem je úplně mimo
- k práci se seznamy to nezbytné není
ukažte jak bez využití funkcí třídy monáda (a unsafeperformio :-D ) načtetu a vypíšete řetězec - lidi, kteří v tom chtějí dělat ještě větší zmatek (např. zaváděním nové terminologie)
- připomělo mi to problémy některých lidí s ukazateli v cčku
- tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu
- sčítání a celé čísla jsou grupa shodou okolností, ale ...
- pojem monády nepotřebujete pro hello world, ale pro praktický program ("echo") už ano
- pro práci se seznamem class Monad nepotřebujete, kdežto pro io složitější než hello world ano
... to je spousta hodně silných tvrzení, každé z nich by si imho zasloužilo vysvětlení :) Takže já myslím, že mě můžete na chvilku dát oraz a (pokud chcete) zformulovat spíš spoji pozici. Včetně relevantních a silných argumentů.
P.S. a pokud se budete chtít vymezovat vůči tomu zmíněnému článku, dost doporučuju (poctivě!) přečíst jím odkazovaný https://byorgey.wordpress.com/2009/01/12/abstraction-intuition-and-the-monad-tutorial-fallacy/ ten je taky moc pěkný.
-
A mimochodem, kdybyste to chtěl vzít hodně z gruntu, tak se podívejte na Elm. Ten nemá typy vyšších řádů, takže se tam obecné monadické operace implementovat nedají, má jenom pár "generik" zabudovaných v runtimu (comparable, number a ještě jedno, to si teď nevybavím). Čili v Elmu se, prosím, pojem "Monad" vůbec nevyskytuje. Carramba! A přesto tam IO jde udělat! :)
-
A zas jsem kurnikšopa na něco zapomněl: prosím, odlište, kdy mluvíte o tom, že něco potřebuju vědět, protože je to tak prostě v Haskellu uděláno, že to člověk potřebuje, od situace, kdy něco potřebuju vědět, protože se bez toho prostě nedá principielně obejít. To jsou dost odlišné věci. Jestli něco je nebo není potřeba v ausgerechnet v Haskellu se asi moc spořit nebudu, neznám ho tolik, abych mohl pochopit, proč jsou tam některé věci tak, jak jsou a ne jinak.
-
A zas jsem kurnikšopa na něco zapomněl: prosím, odlište, kdy mluvíte o tom, že něco potřebuju vědět, protože je to tak prostě v Haskellu uděláno, že to člověk potřebuje, od situace, kdy něco potřebuju vědět, protože se bez toho prostě nedá principielně obejít. To jsou dost odlišné věci. Jestli něco je nebo není potřeba v ausgerechnet v Haskellu se asi moc spořit nebudu, neznám ho tolik, abych mohl pochopit, proč jsou tam některé věci tak, jak jsou a ne jinak.
článek na který jsem reagoval byl o haskellu, celou dobu mluvím o haskellu, "K tomu, abych v Haskellu programoval, nutne pojem Monada vubec nemusim znat"
-
A mimochodem, kdybyste to chtěl vzít hodně z gruntu, tak se podívejte na Elm. Ten nemá typy vyšších řádů, takže se tam obecné monadické operace implementovat nedají, má jenom pár "generik" zabudovaných v runtimu (comparable, number a ještě jedno, to si teď nevybavím). Čili v Elmu se, prosím, pojem "Monad" vůbec nevyskytuje. Carramba! A přesto tam IO jde udělat! :)
viz výše
-
https://byorgey.wordpress.com/2009/01/12/abstraction-intuition-and-the-monad-tutorial-fallacy/
hezké, myslím, že velmi přesné
-
článek na který jsem reagoval byl o haskellu, celou dobu mluvím o haskellu,
Dobře, beru na vědomí, že se bavíme jenom o Haskellu. Pak teda pojem monáda budeme používat jenom ve významu "třída Monad v Haskellu"? Čili i tvrzení "promisy v JS jsou monadické" je nesmysl? No, to se nám ta debata teda hodně zúží a pak už asi není v ničem sporu. V Haskellu je spousta fcí s kindem "Monad m" takže je asi potřeba aspoň tušit, co to znamená, to je víceméně sebepotvrzující tvrzení :)
Tak aspoň zkuste napsat, co se vám na tom článku nelíbilo, když jsme všechny spory zahodili :)))
-
článek na který jsem reagoval byl o haskellu, celou dobu mluvím o haskellu,
Dobře, beru na vědomí, že se bavíme jenom o Haskellu. Pak teda pojem monáda budeme používat jenom ve významu "třída Monad v Haskellu"? Čili i tvrzení "promisy v JS jsou monadické" je nesmysl? No, to se nám ta debata teda hodně zúží a pak už asi není v ničem sporu. V Haskellu je spousta fcí s kindem "Monad m" takže je asi potřeba aspoň tušit, co to znamená, to je víceméně sebepotvrzující tvrzení :)
Tak aspoň zkuste napsat, co se vám na tom článku nelíbilo, když jsme všechny spory zahodili :)))
uvědomujete si, že tahle debata se odvíjí od vašeho postu s odkazem na článek o IO v haskellu a monádách?
je "potřeba tušit", ale "K tomu, abych v Haskellu programoval, nutne pojem Monada vubec nemusim znat"
btw "kind" je něco jiného
-
https://byorgey.wordpress.com/2009/01/12/abstraction-intuition-and-the-monad-tutorial-fallacy/
hezké, myslím, že velmi přesné
Divné, že to sem dal zrovna Prýmek, když to vyvrací jeho tvrzení.
-
uvědomujete si, že tahle debata se odvíjí od vašeho postu s odkazem na článek o IO v haskellu a monádách?
Ano. Cili nebylo by nejproduktivnejsi, kdybyste polemizoval s konkretnimi tvrzenimi z clanku, ktery jste oznacil za chybny?
je "potřeba tušit", ale "K tomu, abych v Haskellu programoval, nutne pojem Monada vubec nemusim znat"
No domnivam se (a klidne muzu mylit), ze se docela dlouho da vystacit s mlhavym chapanim, ze to je "takovej ten divnej kontejner, co se pri praci s nim musi pouzivat do". Nemuzu to potvrdit z vlastni zkusenosti, protoze co je to monada snad vim, ale prakticky jsem v Haskellu nic vetsiho nedelal. Nicmene neslysim prvne, ze to nekdo z vlastni zkusenosti potvrzuje:
No začátečník IMO prostě použije "do" notaci v IO monadu v vůbec nepotřebuje vědět, co monada je. Poměrně brzo narazí na rozdíl mezi "pure" a "monadic" výpočtem, tak se s tím nějak popere (vezme to jako nějakou "divnou" kontejnerizaci) a pořád nemusí tušit, co to monáda je. A program už může napsat docela slušný.
Nicmene pokud se chcete v debate vracet, tak bych rad pripomnel, ze se odvijela od zbojova tvrzeni, ze se v Haskellu neda poradne psat, pokud clovek nezna teorii kategorii. Vy jste se zminil, ze vam ta matematicka argumentace neni blizka. Takze CT neznate? A jak propana muzete psat v Haskellu?! :)
btw "kind" je něco jiného
Jasně, omlouvám se, upsal jsem se. Každopádně obecné monadické operace se bez podpory kindů napsat nedají, pokud se nepletu.
-
Divné, že to sem dal zrovna Prýmek, když to vyvrací jeho tvrzení.
Divný je, že se to líbí tobě, když to vyvrací tvoje tvrzení z jiné debaty:
The heart of the matter is that people begin with the concrete, and move to the abstract. [..] This is why it’s such good pedagogical practice to demonstrate examples of concepts you are trying to teach.
Zadne tvoje "prvne se musi naucit teoreticke zaklady!" ;)
No a jake moje tvrzeni a cim by to melo vyvracet?!
-
...
No domnivam se (a klidne muzu mylit), ze se docela dlouho da vystacit s mlhavym chapanim, ze to je "takovej ten divnej kontejner, co se pri praci s nim musi pouzivat do". Nemuzu to potvrdit z vlastni zkusenosti, protoze co je to monada snad vim, ale prakticky jsem v Haskellu nic vetsiho nedelal. Nicmene neslysim prvne, ze to nekdo z vlastni zkusenosti potvrzuje:
No začátečník IMO prostě použije "do" notaci v IO monadu v vůbec nepotřebuje vědět, co monada je. Poměrně brzo narazí na rozdíl mezi "pure" a "monadic" výpočtem, tak se s tím nějak popere (vezme to jako nějakou "divnou" kontejnerizaci) a pořád nemusí tušit, co to monáda je. A program už může napsat docela slušný.
...
Muzu potvrdit. Nas skolni tymovy projekt v Haskellu takto zacinal ("musi se tam placnout do a pouzivat ta sipka" ;D). Dale nasledovalo zdeseni, ze to divne "IO" se musi vsude na desitkach mist dopsat, aby se to vubec prelozilo - doslova jsme si rikali, ze nam to IO infikovalo cely kod. Ke konci projektu jsme snad dokonce i zacinali chapat, o co jako ze asi jde. BTW teorie z prednasky nam byla uplne na pendrek, to uz vice nam daly cvika, kde se naopak jelo spise vyhradne na prakticke priklady.
-
uvědomujete si, že tahle debata se odvíjí od vašeho postu s odkazem na článek o IO v haskellu a monádách?
Ano. Cili nebylo by nejproduktivnejsi, kdybyste polemizoval s konkretnimi tvrzenimi z clanku, ktery jste oznacil za chybny?
článek: "IO in Haskell has nothing to do with monads."
možná se pletu, moje znalost haskellu je spíš praktického ražení, ale myslím, že bez monády (funkcí class Monad) nelze vytvořit program, který načte a vypíše řetězec, dalo by se potom tvrdit, že IO v haskellu nemá nic společného s monádama?
btw to trochu delší tvar mé první reakce na ten článek
-
...
No domnivam se (a klidne muzu mylit), ze se docela dlouho da vystacit s mlhavym chapanim, ze to je "takovej ten divnej kontejner, co se pri praci s nim musi pouzivat do". Nemuzu to potvrdit z vlastni zkusenosti, protoze co je to monada snad vim, ale prakticky jsem v Haskellu nic vetsiho nedelal. Nicmene neslysim prvne, ze to nekdo z vlastni zkusenosti potvrzuje:
No začátečník IMO prostě použije "do" notaci v IO monadu v vůbec nepotřebuje vědět, co monada je. Poměrně brzo narazí na rozdíl mezi "pure" a "monadic" výpočtem, tak se s tím nějak popere (vezme to jako nějakou "divnou" kontejnerizaci) a pořád nemusí tušit, co to monáda je. A program už může napsat docela slušný.
...
Muzu potvrdit. Nas skolni tymovy projekt v Haskellu takto zacinal ("musi se tam placnout do a pouzivat ta sipka" ;D). Dale nasledovalo zdeseni, ze to divne "IO" se musi vsude na desitkach mist dopsat, aby se to vubec prelozilo - doslova jsme si rikali, ze nam to IO infikovalo cely kod. Ke konci projektu jsme snad dokonce i zacinali chapat, o co jako ze asi jde. BTW teorie z prednasky nam byla uplne na pendrek, to uz vice nam daly cvika, kde se naopak jelo spise vyhradne na prakticke priklady.
Přesně od toho cvika jsou :)
-
Muzu potvrdit. Nas skolni tymovy projekt v Haskellu takto zacinal ("musi se tam placnout do a pouzivat ta sipka" ;D). Dale nasledovalo zdeseni, ze to divne "IO" se musi vsude na desitkach mist dopsat, aby se to vubec prelozilo - doslova jsme si rikali, ze nam to IO infikovalo cely kod. Ke konci projektu jsme snad dokonce i zacinali chapat, o co jako ze asi jde. BTW teorie z prednasky nam byla uplne na pendrek, to uz vice nam daly cvika, kde se naopak jelo spise vyhradne na prakticke priklady.
No a tohle je presne ta tragedie. A presne proto si myslim, ze by Elm byl jako intro-jazyk lepsi a prejit od nej na Haskell by pak uz tolik nebolelo. Napr. si vem, ze by ses tenkrat nemusel ucit nejakou "IO monadu", ale dozvedel by ses, ze putStr ma treba takovyhle typ (ilustracni priklad!):
putStr :: String -> Task
a getStr takovyhle:
getStr :: Task String
- hned by ti bylo jasny, ze putStr vytvari prikaz pro runtime, aby neco vypsal. A ze ten prikaz je proste jenom nejaka datova struktura, kterou muzes klidne predavat z (ciste) funkce sem a tam, ruzne transformovat, retezit, cokoli... ale k tomu, abys z "Task String" dostal ten String, musis ten Task String nejak "spustit", coz se uvnitr toho jazyka udelat neda.
Vubec bys nepotreboval dumat nad nejakymi monadami a milionem roztodivnych operatoru, ktere funguji jenom kdyz se zapisou v nejakem magickem poradi, ktere nikdo nechape a je potreba to proste vyzkouset ;)
...no a az by vsichni pracovali s Tasky jako kdyz lambdou mrska, tak by ctihodny pan profesor prisel s fascinujici otazkou: "A panove a damy, ze nevite, co ma spolecneho List a Task?" :)) Nekdo by tu nasledujici odpoved dal, nekdo ne, ale Tasky by chapali vsichni. Protoze - jak rika ten clanek, co mi pry odporuje - prvne potrebuje clovek videt neco konkretniho a pak teprve se posunout k abstrakci.
-
možná se pletu, moje znalost haskellu je spíš praktického ražení, ale myslím, že bez monády (funkcí class Monad) nelze vytvořit program, který načte a vypíše řetězec,
Tak to je právě podle mě nepravdivé a i docela snadno vyvratitelné tvrzení: k tomu, abych dělal IO, potřebuji ty operace. Nepotřebuju třídu Monad jako takovou. A to ani v Haskellu, pokud se nepletu.
Něco jiného je, že standardní knihovna Haskellu obsahuje spoustu šikovných fcí, které pracují právě jenom s monádami. Nebo že se s monadickými typy v Haskellu píše příjemně.
Tak jako tak by to ale šlo napsat bez (obecného) typu Monad x, přesně tak, jak to má právě ten Elm.
dalo by se potom tvrdit, že IO v haskellu nemá nic společného s monádama?
Ano, dalo. Protože IO v Haskellu je IO. Monáda je abstrakce, která vystihuje společné vlastnosti (např.) IO a Listu.
-
možná se pletu, moje znalost haskellu je spíš praktického ražení, ale myslím, že bez monády (funkcí class Monad) nelze vytvořit program, který načte a vypíše řetězec,
Tak to je právě podle mě nepravdivé a i docela snadno vyvratitelné tvrzení: k tomu, abych dělal IO, potřebuji ty operace. Nepotřebuju třídu Monad jako takovou. A to ani v Haskellu, pokud se nepletu.
nuže?
-
nuže?
Nuže co?
-
nuže?
Nuže co?
ten program :)
můj by vypadal takhle:
main = getLine >>= putStrLn
-
ten program :)
můj by vypadal takhle:
main = getLine >>= putStrLn
A můj by vypadal takhle:
main = getLine' >>=' putStrLn'
...přičemž sémantika by byla úplně stejná a typy jsem už popsal: http://forum.root.cz/index.php?topic=13078.msg163624#msg163624
Ještě to pořád není jasné? Musím fakt oprášit ghc a napsat to skutečně se vším všudy?!
-
Souhlas s tim Elmem. Nebo kdyby alespon nejdrive polopate neakademicky rekl, cemu ze to IO odpovida a k cemu to tam je a az pak presel k presne teorii :-\. Myslim si, ze je to i problem s motivaci - kdyz student nevi, k cemu mu ta abstrakce bude, protoze prednasejici se k necemu takovemu, jako jsou strucne ukazky z praxe, prece nesnizi, tak to ten student jednoduse bude brat jako dalsi sekvenci: nasprtat se -> vyblit na pisemku -> zapomenout. Timto problemem na FITu trpelo hodne predmetu, treba i ta teoreticka informatika nebo matematiky. A pritom teorie ze vsech tech predmetu se davno v praxi pouziva (asi ne vse, ale dost).
-
Souhlas s tim Elmem. Nebo kdyby alespon nejdrive polopate neakademicky rekl, cemu ze to IO odpovida a k cemu to tam je a az pak presel k presne teorii :-\. Myslim si, ze je to i problem s motivaci - kdyz student nevi, k cemu mu ta abstrakce bude
Přesně! Jsem rád, že aspoň někdo mě pochopil, už mi z toho bylo skoro úzko :)
On by tenhle postup měl i ještě jednu parádní výhodu: když bys napsal trochu delší kód v Elmu, narazil bys na to, že musíš docela často určité obraty opakovat, protože jednou to děláš pro Task, jindy pro List... No a to by byl ten pravý čas přijít se zlatým grálem: jakmile by studenti začali brblat, že musí psát boilerplate, přišel by slovutný pan profesor s "ale to víte, studenti moji milí a drazí, že to jde i jinak! Stačí, když nad všemi těmihle typy budete mít jednu abstrakci, a pak vám to stačí napsat jednou, obecně, a bude vám to fungovat nad Listem i Taskem! Hele, té abstrakci se říká monáda... (studenti ani nedýchají nedočkavostí ;) )
-
Souhlas s tim Elmem. Nebo kdyby alespon nejdrive polopate neakademicky rekl, cemu ze to IO odpovida a k cemu to tam je a az pak presel k presne teorii :-\. Myslim si, ze je to i problem s motivaci - kdyz student nevi, k cemu mu ta abstrakce bude, protoze prednasejici se k necemu takovemu, jako jsou strucne ukazky z praxe, prece nesnizi, tak to ten student jednoduse bude brat jako dalsi sekvenci: nasprtat se -> vyblit na pisemku -> zapomenout. Timto problemem na FITu trpelo hodne predmetu, treba i ta teoreticka informatika nebo matematiky. A pritom teorie ze vsech tech predmetu se davno v praxi pouziva (asi ne vse, ale dost).
Tak ono to platí obecně, už Komenský říkal - byť jinými slovy - že je nutné postupovat od konkrétního k abstraktnímu. Pokud někdo narazí na špatného učitele, tak to je samozřejmě problém a může to celou látku znechutit. Proto naštěstí máme na VŠ různé ankety a student aspoň ví, ke komu se (ne)zapsat.
-
ten program :)
můj by vypadal takhle:
main = getLine >>= putStrLn
A můj by vypadal takhle:
main = getLine' >>=' putStrLn'
...přičemž sémantika by byla úplně stejná a typy jsem už popsal: http://forum.root.cz/index.php?topic=13078.msg163624#msg163624
Ještě to pořád není jasné? Musím fakt oprášit ghc a napsat to skutečně se vším všudy?!
no třeba to jde takhle unsafePerformIO (putStrLn (unsafePerformIO getLine)) :D
-
no třeba to jde takhle unsafePerformIO (putStrLn (unsafePerformIO getLine)) :D
Žádné unsafePerformIO! Normálně úplně čistě, stejně jako ten tvůj kód. Byl by tam jediný rozdíl: ty moje fce by nebyly napsané obecně pro Monad, ale konkrétně jenom pro IO. Takže slovo "Monad" by se tam vůbec nevyskytovalo (což je ta pointa, ne?)
-
...
Pokud někdo narazí na špatného učitele, tak to je samozřejmě problém a může to celou látku znechutit. Proto naštěstí máme na VŠ různé ankety a student aspoň ví, ke komu se (ne)zapsat.
Jestli mluvite zvlast o predmetech, kam se zapsat a kam ne, tak to v tomto pripade jaksi nelze aplikovat - vsechny ty vyjmenovane predmety jsou na FITu (VUT Brno) povinne a uci je vzdy prave jeden prednasejici (neni vic variant) :(. Dotazniky se sice na konci semestru vyplnuji, ale podle toho co jsem slysel jsou stejne jen pro garanta a vedeni z toho zadne dusledky nevyvozuje = jsou k nicemu.
Kdyz nad tim tak premyslim, tak mozna prave proto jsou ty predmety tak spatne, protoze jsou povinne, takze nemuze nastat situace, ze se mezi studenty rozkrikne, jak nizkou uroven ma vyuka a nikdo si ten predmet nezapise. Maji proste takovy "monopol", muzou si byt jak chteji spatni :(.
-
no třeba to jde takhle unsafePerformIO (putStrLn (unsafePerformIO getLine)) :D
Žádné unsafePerformIO! Normálně úplně čistě, stejně jako ten tvůj kód. Byl by tam jediný rozdíl: ty moje fce by nebyly napsané obecně pro Monad, ale konkrétně jenom pro IO. Takže slovo "Monad" by se tam vůbec nevyskytovalo (což je ta pointa, ne?)
tak ukažte
-
tak ukažte
Nejspíš jsem se v tomhle zmýlil, ono to uvnitř Haskellu asi nejde, protože nejde ani zúžit typ (>>=) na konkrétní monádu, ani definovat vlastní (>>=). Muselo by se to asi udělat v runtimu.
Každopádně to na věci nic nemění. Prostě místo
(>>=) :: Monad m => m a -> (a -> m b) -> m b
by bylo potřeba mít
(>>=) :: IO a -> (a -> IO b) -> IO b
a měli bysme triviálně IO bez monády.
-
tak ukažte
Nejspíš jsem se v tomhle zmýlil, ono to uvnitř Haskellu asi nejde, protože nejde ani zúžit typ (>>=) na konkrétní monádu, ani definovat vlastní (>>=). Muselo by se to asi udělat v runtimu.
Každopádně to na věci nic nemění. Prostě místo
(>>=) :: Monad m => m a -> (a -> m b) -> m b
by bylo potřeba mít
(>>=) :: IO a -> (a -> IO b) -> IO b
a měli bysme triviálně IO bez monády.
nejde to, ale na věci to nic nemění?
-
nejde to, ale na věci to nic nemění?
No nejde zřejmě to demonstrovat tak, jak jsem myslel. Muselo by se zasáhnout do zdrojáků překladače nebo použít nějaké kejkle, které já neumím.
Ale to je úplně jedno, vy si fakt neumíte představit, že by (>>=) prostě bylo definováno JENOM pro IO? Takže by to "Monad m" vůbec v jeho typu nefigurovalo?
-
nejde to, ale na věci to nic nemění?
No nejde zřejmě to demonstrovat tak, jak jsem myslel. Muselo by se zasáhnout do zdrojáků překladače nebo použít nějaké kejkle, které já neumím.
Ale to je úplně jedno, vy si fakt neumíte představit, že by (>>=) prostě bylo definováno JENOM pro IO? Takže by to "Monad m" vůbec v jeho typu nefigurovalo?
což o to, já si to představit umím, ale tak to prostě není
i ten článek na který jste odkazoval to zmiňuje:
"“I have to directly use the result of one IO action in order to decide which IO action should happen next”: Yes, this is a use case for IO’s monadic interface."
-
...
Pokud někdo narazí na špatného učitele, tak to je samozřejmě problém a může to celou látku znechutit. Proto naštěstí máme na VŠ různé ankety a student aspoň ví, ke komu se (ne)zapsat.
Jestli mluvite zvlast o predmetech, kam se zapsat a kam ne, tak to v tomto pripade jaksi nelze aplikovat - vsechny ty vyjmenovane predmety jsou na FITu (VUT Brno) povinne a uci je vzdy prave jeden prednasejici (neni vic variant) :(. Dotazniky se sice na konci semestru vyplnuji, ale podle toho co jsem slysel jsou stejne jen pro garanta a vedeni z toho zadne dusledky nevyvozuje = jsou k nicemu.
Kdyz nad tim tak premyslim, tak mozna prave proto jsou ty predmety tak spatne, protoze jsou povinne, takze nemuze nastat situace, ze se mezi studenty rozkrikne, jak nizkou uroven ma vyuka a nikdo si ten predmet nezapise. Maji proste takovy "monopol", muzou si byt jak chteji spatni :(.
Jo, já vím, někdy si prostě student vybrat nemůže :(
-
monády se taky dají vysvětlit velice jednoduše.
tak ukažte :)
Tak jsem to našel: https://blog.jcoglan.com/2011/03/05/translation-from-haskell-to-javascript-of-selected-portions-of-the-best-introduction-to-monads-ive-ever-read/
-
i ten článek na který jste odkazoval to zmiňuje:
"“I have to directly use the result of one IO action in order to decide which IO action should happen next”: Yes, this is a use case for IO’s monadic interface."
A to má dokazovat co? Je to řečeno v úplně jiném kontextu a říká to něco úplně jiného.
No nic, já už bych to nechal. Měl jste pravdu, že v současném Haskellu se skutečně asi použití slova "Monad" nedá vyhnout. Ne proto, že by to nešlo principielně, ale proto, že je to tak udělané. Každopádně to nic nemění na tom, co jsem tvrdil a nic to nemění ani na tom, co tvrdí ten článek. Jestli s tím nesouhlasíte, ok, mně už se to dál rozpitvávat nechce. Berte to jako že jste měl pravdu, jestli chcete, mně úplně stačí, že mi zřejmě porozuměl Andy a noef :)
Btw, vtipná berlička, jak se Monad vyhnout: http://stackoverflow.com/questions/17002119/haskell-pre-monadic-i-o - používá ale unsafePerformIO, takže to jako argument brát nebudete, to je mi jasný :)
-
monády se taky dají vysvětlit velice jednoduše.
tak ukažte :)
Tak jsem to našel: https://blog.jcoglan.com/2011/03/05/translation-from-haskell-to-javascript-of-selected-portions-of-the-best-introduction-to-monads-ive-ever-read/
děkuji
"You Could Have Invented Monads!" jsem četl, tohle vypadá jako reimplementace v javascriptu, takže se mi to celé číst nechce
-
i ten článek na který jste odkazoval to zmiňuje:
"“I have to directly use the result of one IO action in order to decide which IO action should happen next”: Yes, this is a use case for IO’s monadic interface."
A to má dokazovat co? Je to řečeno v úplně jiném kontextu a říká to něco úplně jiného.
No nic, já už bych to nechal. Měl jste pravdu, že v současném Haskellu se skutečně asi použití slova "Monad" nedá vyhnout. Ne proto, že by to nešlo principielně, ale proto, že je to tak udělané. Každopádně to nic nemění na tom, co jsem tvrdil a nic to nemění ani na tom, co tvrdí ten článek. Jestli s tím nesouhlasíte, ok, mně už se to dál rozpitvávat nechce. Berte to jako že jste měl pravdu, jestli chcete, mně úplně stačí, že mi zřejmě porozuměl Andy a noef :)
Btw, vtipná berlička, jak se Monad vyhnout: http://stackoverflow.com/questions/17002119/haskell-pre-monadic-i-o - používá ale unsafePerformIO, takže to jako argument brát nebudete, to je mi jasný :)
teď už asi i chápu, proč mezi vámi a zbojem dochází k těma sporům o logiky
-
teď už asi i chápu, proč mezi vámi a zbojem dochází k těma sporům o logiky
Myslím, že nechápete.
-
i ten článek na který jste odkazoval to zmiňuje:
"“I have to directly use the result of one IO action in order to decide which IO action should happen next”: Yes, this is a use case for IO’s monadic interface."
A to má dokazovat co? Je to řečeno v úplně jiném kontextu a říká to něco úplně jiného.
No nic, já už bych to nechal. Měl jste pravdu, že v současném Haskellu se skutečně asi použití slova "Monad" nedá vyhnout. Ne proto, že by to nešlo principielně, ale proto, že je to tak udělané. Každopádně to nic nemění na tom, co jsem tvrdil a nic to nemění ani na tom, co tvrdí ten článek. Jestli s tím nesouhlasíte, ok, mně už se to dál rozpitvávat nechce. Berte to jako že jste měl pravdu, jestli chcete, mně úplně stačí, že mi zřejmě porozuměl Andy a noef :)
Btw, vtipná berlička, jak se Monad vyhnout: http://stackoverflow.com/questions/17002119/haskell-pre-monadic-i-o - používá ale unsafePerformIO, takže to jako argument brát nebudete, to je mi jasný :)
teď už asi i chápu, proč mezi vámi a zbojem dochází k těma sporům o logiky
No nevím, ten kontext byl, že Prýmek tvrdil, že S5 je silnější než FOL, a když jsem mu to vyvrátil, tak začal tvrdit, že S5 je slabší než myšlení pětiletého dítěte. V tomto momentu mi došlo, že se v tom sám ztratil a jen nechce přiznat chybu/neznalost. Nic jiného v tom není kromě jeho argumentačního stylu, kdy mlží a skáče z tématu na téma...
-
..., mně úplně stačí, že mi zřejmě porozuměl Andy a noef :)
Já taky a díky :)
-
i ten článek na který jste odkazoval to zmiňuje:
"“I have to directly use the result of one IO action in order to decide which IO action should happen next”: Yes, this is a use case for IO’s monadic interface."
A to má dokazovat co? Je to řečeno v úplně jiném kontextu a říká to něco úplně jiného.
No nic, já už bych to nechal. Měl jste pravdu, že v současném Haskellu se skutečně asi použití slova "Monad" nedá vyhnout. Ne proto, že by to nešlo principielně, ale proto, že je to tak udělané. Každopádně to nic nemění na tom, co jsem tvrdil a nic to nemění ani na tom, co tvrdí ten článek. Jestli s tím nesouhlasíte, ok, mně už se to dál rozpitvávat nechce. Berte to jako že jste měl pravdu, jestli chcete, mně úplně stačí, že mi zřejmě porozuměl Andy a noef :)
Btw, vtipná berlička, jak se Monad vyhnout: http://stackoverflow.com/questions/17002119/haskell-pre-monadic-i-o - používá ale unsafePerformIO, takže to jako argument brát nebudete, to je mi jasný :)
teď už asi i chápu, proč mezi vámi a zbojem dochází k těma sporům o logiky
No nevím, ten kontext byl, že Prýmek tvrdil, že S5 je silnější než FOL, a když jsem mu to vyvrátil, tak začal tvrdit, že S5 je slabší než myšlení pětiletého dítěte. V tomto momentu mi došlo, že se v tom sám ztratil a jen nechce přiznat chybu/neznalost. Nic jiného v tom není kromě jeho argumentačního stylu, kdy mlží a skáče z tématu na téma...
no ano - " Každopádně to nic nemění na tom, co jsem tvrdil "
-
ten kontext byl, že Prýmek tvrdil, že S5 je silnější než FOL
Takhle jsem to netvrdil. Ale jestli tě ta představa baví, klidně to sem postuj obden, on tomu třeba někdo začne věřit :)
-
ten kontext byl, že Prýmek tvrdil, že S5 je silnější než FOL
Takhle jsem to netvrdil. Ale jestli tě ta představa baví, klidně to sem postuj obden, on tomu třeba někdo začne věřit :)
"Taková známá modální logika je třeba S5 + Kripkeho sémantika [...] jak se modality dají implementovat v predikátové logice? Já si to totiž neumím představit, řekl bych, že by k tomu byl potřeba minimálně logika druhého řádu."
Tos psal nebo nepsal?
-
"Taková známá modální logika je třeba S5 + Kripkeho sémantika [...] jak se modality dají implementovat v predikátové logice? Já si to totiž neumím představit, řekl bych, že by k tomu byl potřeba minimálně logika druhého řádu."
Tos psal nebo nepsal?
Ano, to jsem napsal a byla to největší chyba celé té diskuse. Nespojil jsem si totiž tebe s tvým blogem a považoval tě za trolícího anonyma s příliš silnými tvrzeními. Myslel jsem si prostě, že tvrdíš, že se dá ve FOL zachytit jakákoliv modalita, např. "pro všechny predikáty platí, že jestliže jsou nutně platné, pak jsou možné". Kdybych si tě s tvým blogem spojil, tak bych tohle nepředpokládal.
Rozumím tomu, že to bylo matoucí, ale tady sis spojil dvě věci, který jsem spojit nechtěl - v první větě se snažím vydolovat nějaký konkrétní název konkrétní logiky ("Zboji, prosímtě, neházej mi drobky ze stolu a řekni jako normální člověk přesný název věci, o které mluvíš - jako např. "S5", řekni mi konečně něco konkrétního!"). A ve druhé větě mluvím o tom, co píšu v předchozím odstavci.
Ono by to taky bylo jasnější, kdybys nevypustil tu větu předtím: "Ježkovyvoči ale to přece není logika (ve smyslu "predikátová logika"). Taková známá modální logika je třeba S5 + Kripkeho sémantika"
Bylo to matoucí, nesrozumitelné a celkově mě to celý strašně zmátlo, protože díky tvému komunikačnímu stylu jsem nevěděl, jestli mluvím s nějakým alteregem Ivana Nového, trousícím náhodná životní moudra, nebo s někým, kdo ví, co říká. Moje chyba, uznávám. A uznávám, že jsem v té diskusi byl míň pozorný než jsem měl být, určitě když budeš chtít, najdeš tam spoustu chyb.
Ok. Tak jak často to teda budeme vytahovat? Po každé, když budeme mít potřebu sdělit světu, že Prýmek je pitomec a je úplně jedno, co říká? Ok, trochu zvrácená záliba, ale budiž, lidi mají všelijaké koníčky.
-
A nejlíp je to zmatení vidět na tomhle:
Mě zajímá tohle:
Nicméně pořád stačí predikátová na vše.
Můžeš mi ukázat nějaký seriozní paper, který by říkal, že se dá jakýkoli logický systém převést na predikátovou logiku? Ono by to bylo totiž trochu v rozporu s některými důkazy...
-
"Taková známá modální logika je třeba S5 + Kripkeho sémantika [...] jak se modality dají implementovat v predikátové logice? Já si to totiž neumím představit, řekl bych, že by k tomu byl potřeba minimálně logika druhého řádu."
Tos psal nebo nepsal?
Ano, to jsem napsal a byla to největší chyba celé té diskuse. Nespojil jsem si totiž tebe s tvým blogem a považoval tě za trolícího anonyma s příliš silnými tvrzeními. Myslel jsem si prostě, že tvrdíš, že se dá ve FOL zachytit jakákoliv modalita, např. "pro všechny predikáty platí, že jestliže jsou nutně platné, pak jsou možné". Kdybych si tě s tvým blogem spojil, tak bych tohle nepředpokládal.
Rozumím tomu, že to bylo matoucí, ale tady sis spojil dvě věci, který jsem spojit nechtěl - v první větě se snažím vydolovat nějaký konkrétní název konkrétní logiky ("Zboji, prosímtě, neházej mi drobky ze stolu a řekni jako normální člověk přesný název věci, o které mluvíš - jako např. "S5", řekni mi konečně něco konkrétního!"). A ve druhé větě mluvím o tom, co píšu v předchozím odstavci.
Ono by to taky bylo jasnější, kdybys nevypustil tu větu předtím: "Ježkovyvoči ale to přece není logika (ve smyslu "predikátová logika"). Taková známá modální logika je třeba S5 + Kripkeho sémantika"
Bylo to matoucí, nesrozumitelné a celkově mě to celý strašně zmátlo, protože díky tvému komunikačnímu stylu jsem nevěděl, jestli mluvím s nějakým alteregem Ivana Nového, trousícím náhodná životní moudra, nebo s někým, kdo ví, co říká. Moje chyba, uznávám. A uznávám, že jsem v té diskusi byl míň pozorný než jsem měl být, určitě když budeš chtít, najdeš tam spoustu chyb.
Ok. Tak jak často to teda budeme vytahovat? Po každé, když budeme mít potřebu sdělit světu, že Prýmek je pitomec a je úplně jedno, co říká? Ok, trochu zvrácená záliba, ale budiž, lidi mají všelijaké koníčky.
Tak pitomec je příliš silné slovo, jen se rád hádáš, možná z principu, a je ti jedno, o čem. Prostě the devil's advocate. Proti tomu nic nemám, dokonce to může být užitečné, neboť to podněcuje diskusi. Jen by ta diskuse měla být na určité úrovni, v tomto případě odborné, k čemuž patří přesné vyjadřování a řekněme forma tvrzení-důkaz (s trochou nadsázky).
A když už jsme u toho, máš konkrétní příklad modality nevyjadřitelné ve FOL? Mě totiž žádná motivovaná přirozeným jazykem nenapadá (čímž neříkám, že neexistuje).
-
Jen by ta diskuse měla být na určité úrovni, v tomto případě odborné, k čemuž patří přesné vyjadřování a řekněme forma tvrzení-důkaz (s trochou nadsázky).
Ale zboji, to už jsme řešili - pokud ti oponent není ochotný ani říct konkrétní název konkrétní logiky, ani název článku, kterým argumentuje, tak tě to prostě nemotivuje se takové diskusi věnovat pečlivě.
A když už jsme u toho, máš konkrétní příklad modality nevyjadřitelné ve FOL? Mě totiž žádná motivována přirozeným jazykem nenapadá (čímž neříkám, že neexistuje).
No, takhle z rukávu asi nebudu raději nic sypat, ať se nám to neopakuje... Ale hledal bych směrem k obecným tvrzením. Něco ve stylu "každý vlastnost je k něčemu dobrá" nebo něco zašmodrchanějšího typu "každý prezident je milován svým lidem".
-
Jen by ta diskuse měla být na určité úrovni, v tomto případě odborné, k čemuž patří přesné vyjadřování a řekněme forma tvrzení-důkaz (s trochou nadsázky).
Ale zboji, to už jsme řešili - pokud ti oponent není ochotný ani říct konkrétní název konkrétní logiky, ani název článku, kterým argumentuje, tak tě to prostě nemotivuje se takové diskusi věnovat pečlivě.
A když už jsme u toho, máš konkrétní příklad modality nevyjadřitelné ve FOL? Mě totiž žádná motivována přirozeným jazykem nenapadá (čímž neříkám, že neexistuje).
No, takhle z rukávu asi nebudu raději nic sypat, ať se nám to neopakuje... Ale hledal bych směrem k obecným tvrzením. Něco ve stylu "každý vlastnost je k něčemu dobrá" nebo něco zašmodrchanějšího typu "každý prezident je milován svým lidem".
To ale pozor, taková tvrzení nejsou modalita. Resp. nevím, co je pro tebe "modalita", já teda vycházel z commonsense reasoning a modalita je pro mě "mode of existence". Když nad tím tak přemýšlím, tak o žádné přesné definici "modality" nevím. Hmm... (thinking)
-
no ano - " Každopádně to nic nemění na tom, co jsem tvrdil "
Tak, pane kolego, nejenom, že to nic nemění na tom, co jsem říkal, ale mýlil jsem se v tvrzení, že se mýlím, čili jsem se nemýlil. A příklad je nakonec triviální, jenom jsem nevěděl, že ta potřebná fce v Haskellu přímo existuje, i když je deprecated:
Prelude> import IOBase
Prelude GHC.Base> getLine `bindIO` putStr
Hola hou, namornici!
Hola hou, namornici!Prelude GHC.Base> :t readLn
readLn :: Read a => IO a
Prelude GHC.Base> :t putStr
putStr :: String -> IO ()
Nikde se tam slovo "Monad" nevyskytuje a můžu bez problémů dělat IO aniž bych o monádách cokoli věděl. IO je totiž IO a monáda je Monáda.
-
To ale pozor, taková tvrzení nejsou modalita. Resp. nevím, co je pro tebe "modalita", já teda vycházel z commonsense reasoning a modalita je pro mě "mode of existence". Když nad tím tak přemýšlím, tak o žádné přesné definici "modality" nevím. Hmm... (thinking)
No prááááávě :( Zabředli jsme prostě do nekorektně vedené debaty nad nejasnými pojmy, to je celý, no :(
Ani jsem nic úplně konkrétního na mysli neměl, zatemnilo mi mysl to tvrzení "všechno jde pomocí FOL"...
Ale jinak by mě to zajímalo v tom kontextu, v jakém to zaznělo:
drtivá většina matematiky pracuje s tvrzeními, která jsou platná nutně, s "vždycky a všude platnými" tvrzeními. Proto si ta kostra vystačí s predikátovou logikou. Navíc vždycky předpokládáš úplnou informaci.
Jenže v reálném světě to funguje jinak: pracuješ s modalitami, neúplnou informací, intuicí...
...a přesně proto je sice matematika super přesná a super exaktní disciplína, ale nespočítáš ani rychlost pádu kopačáku ze dvou metrů. Prostě všechno, co by tě zdržovalo a věc komplikovalo, to zanedbáš a pracuješ s ideálním světem, ve kterém všechno víš (protože sis to sám zadefinoval tak, jak se ti to hodí ;) ).
Jak byl ten vtip? Něco jako "umíme přesně spočítat zrychlení utrženého výtahu - ze předpokladu, že je to hmotný bod"? Tak nějak :)
- čili nejenom klasické nutné/možné, ale právě i ty znalosti, touhy, mylná přesvědčení... Jak jsme to nakousli včera nebo kdy to bylo...
[ach jo - a už zase spamujem :) ]
-
To ale pozor, taková tvrzení nejsou modalita. Resp. nevím, co je pro tebe "modalita", já teda vycházel z commonsense reasoning a modalita je pro mě "mode of existence". Když nad tím tak přemýšlím, tak o žádné přesné definici "modality" nevím. Hmm... (thinking)
No prááááávě :( Zabředli jsme prostě do nekorektně vedené debaty nad nejasnými pojmy, to je celý, no :(
Ani jsem nic úplně konkrétního na mysli neměl, zatemnilo mi mysl to tvrzení "všechno jde pomocí FOL"...
Ale jinak by mě to zajímalo v tom kontextu, v jakém to zaznělo:
drtivá většina matematiky pracuje s tvrzeními, která jsou platná nutně, s "vždycky a všude platnými" tvrzeními. Proto si ta kostra vystačí s predikátovou logikou. Navíc vždycky předpokládáš úplnou informaci.
Jenže v reálném světě to funguje jinak: pracuješ s modalitami, neúplnou informací, intuicí...
...a přesně proto je sice matematika super přesná a super exaktní disciplína, ale nespočítáš ani rychlost pádu kopačáku ze dvou metrů. Prostě všechno, co by tě zdržovalo a věc komplikovalo, to zanedbáš a pracuješ s ideálním světem, ve kterém všechno víš (protože sis to sám zadefinoval tak, jak se ti to hodí ;) ).
Jak byl ten vtip? Něco jako "umíme přesně spočítat zrychlení utrženého výtahu - ze předpokladu, že je to hmotný bod"? Tak nějak :)
- čili nejenom klasické nutné/možné, ale právě i ty znalosti, touhy, mylná přesvědčení... Jak jsme to nakousli včera nebo kdy to bylo...
[ach jo - a už zase spamujem :) ]
1) Njn, stává se, mě to aspoň přimělo zopakovat si logiku vyššího řádu a algebraickou logiku, zejména na Stanford encyclopedia of philosophy je to teď napsané celkem hezky a obšírně.
2) Asi myslíš propositional attitudes. O tom píše Hobbs v Encoding commonsense knowledge. V podstatě rozlišuje pozitivní modality (ty, kde platí modus ponens, čili například ty klasické nutně/možná) od ostatních, jako "věřit že" (nebo negace, což ne taky modalita). Ale žádnou ucelenou teorii k tomu nemá, jen se vše děje ve FOL. K sémantice logiky vyššího řádu je jeden článek tvrdící, že je na dvě věci (není to Peregrin), zkusím to najít, třeba tě to bude zajímat. Ale nic neslibuju, páč už nevím, kdo to napsal.
-
2) Asi myslíš propositional attitudes. O tom píše Hobbs v Encoding commonsense knowledge. V podstatě rozlišuje pozitivní modality (ty, kde platí modus ponens, čili například ty klasické nutně/možná) od ostatních, jako "věřit že" (nebo negace, což ne taky modalita). Ale žádnou ucelenou teorii k tomu nemá, jen se vše děje ve FOL. K sémantice logiky vyššího řádu je jeden článek tvrdící, že je na dvě věci (není to Peregrin), zkusím to najít, třeba tě to bude zajímat. Ale nic neslibuju, páč už nevím, kdo to napsal.
No jestli chceš nějaké příklady zapeklitých formulí z přirozeného jazyka a jejich rozbor, Materna jich má spoustu.
Co mě třeba zaujalo jako vtipně "jednoduchý" problém s potenciálně složitým formálním řešením je víra v něco nepravdivého. Např. "Mirek si myslí, že 1+1=3". Tam se dostáváš do pěkného problému, jak symbolicky zachytit něco, co samo o sobě nemá smysl, takže jako samostatně stojící formule to musí být neplatné, ale jako součást něčeho je to zase musí mít nějakou hodnotu :) A motají se tam takové ty úvahy právě o rozlišení významu a smyslu atd. Jak říkám, Materna to má rozpracované imho dobře (na realistických příkladech).
Prostě k řešení tohohle problému potřebuješ nějaká "makra"/"quote", nic nového pod sluncem pro programátora ;)
-
Už jsem se bál, že to nenajdu, ale podařilo se: http://jlm.ipipan.waw.pl/index.php/JLM/article/view/113
Zaujal mě abstrakt právě zmínkou o henkinovské sémantice (to je ta, o které ses tak pohrdavě vyjádřil v tom druhém vlákně). Podle mě to stojí za přečtení, stejně jako ten Hintikkův článek, cos odmítl číst tvrdě, že nejsi žák. BTW sorry za přechodník...
-
Zaujal mě abstrakt právě zmínkou o henkinovské sémantice (to je ta, o které ses tak pohrdavě vyjádřil v tom druhém vlákně). Podle mě to stojí za přečtení, stejně jako ten Hintikkův článek, cos odmítl číst tvrdě, že nejsi žák. BTW sorry za přechodník...
Zakládám do Pocketu, ale jestli to někdy vylovím, to nemůžu slíbit, přece jenom mě tohle neživí a měl bych se věnovat spíš jiným věcem... Navíc s tím současným boomem AI, deeplearningu etc. mám trochu obavu, jestli celé tohle formální modelování přir. jazyka není trochu slepá cesta...
-
2) Asi myslíš propositional attitudes. O tom píše Hobbs v Encoding commonsense knowledge. V podstatě rozlišuje pozitivní modality (ty, kde platí modus ponens, čili například ty klasické nutně/možná) od ostatních, jako "věřit že" (nebo negace, což ne taky modalita). Ale žádnou ucelenou teorii k tomu nemá, jen se vše děje ve FOL. K sémantice logiky vyššího řádu je jeden článek tvrdící, že je na dvě věci (není to Peregrin), zkusím to najít, třeba tě to bude zajímat. Ale nic neslibuju, páč už nevím, kdo to napsal.
No jestli chceš nějaké příklady zapeklitých formulí z přirozeného jazyka a jejich rozbor, Materna jich má spoustu.
Co mě třeba zaujalo jako vtipně "jednoduchý" problém s potenciálně složitým formálním řešením je víra v něco nepravdivého. Např. "Mirek si myslí, že 1+1=3". Tam se dostáváš do pěkného problému, jak symbolicky zachytit něco, co samo o sobě nemá smysl, takže jako samostatně stojící formule to musí být neplatné, ale jako součást něčeho je to zase musí mít nějakou hodnotu :) A motají se tam takové ty úvahy právě o rozlišení významu a smyslu atd. Jak říkám, Materna to má rozpracované imho dobře (na realistických příkladech).
Prostě k řešení tohohle problému potřebuješ nějaká "makra"/"quote", nic nového pod sluncem pro programátora ;)
Maternovu práci neznám podrobně (pracuju na tom), nicméně víra v něco, co neexistuje, nebo třeba hledání jednorožce (něčeho, co neexistuje, i když ono hledání jo) popsal už třeba Montague. K nonfirstorderizability jsem skeptický od doby, kdy se podařilo vyřešit donkey sentences.
-
Zaujal mě abstrakt právě zmínkou o henkinovské sémantice (to je ta, o které ses tak pohrdavě vyjádřil v tom druhém vlákně). Podle mě to stojí za přečtení, stejně jako ten Hintikkův článek, cos odmítl číst tvrdě, že nejsi žák. BTW sorry za přechodník...
Zakládám do Pocketu, ale jestli to někdy vylovím, to nemůžu slíbit, přece jenom mě tohle neživí a měl bych se věnovat spíš jiným věcem... Navíc s tím současným boomem AI, deeplearningu etc. mám trochu obavu, jestli celé tohle formální modelování přir. jazyka není trochu slepá cesta...
Aby to nebylo jako se statistickým NLP, kde taky zjistili, že (symbolickou) lingvistiku potřebují a teď ji horkotěžko roubují na statistické metody.
-
Maternovu práci neznám podrobně (pracuju na tom), nicméně víra v něco, co neexistuje, nebo třeba hledání jednorožce (něčeho, co neexistuje, i když ono hledání jo) popsal už třeba Montague.
No však to jsou ty inspirační zdroje: Montague, Frege, Tichý... Mě Materna bavil hodně (učil mě), ale nevím, jestli bude vyhovovat tobě. Je spíš takový víc kecací než formální. Ale ty problémy vytahuje myslím pěkně. Nakolik ze své hlavy a nakolik je to oprášení Tichého, to nevím a ani mě to nezajímá.
--
Srry, už je hodně pozdní hodina a já si chci ještě dneska trošku zaprogramovat, prokecali jsme toho už dneska fakt habaděj. Měj se, dám si pauzu. A jsem rád, že se nám aspoň občas daří nějaká ta rozumná debata, je to fajn, díky :)
-
Maternovu práci neznám podrobně (pracuju na tom), nicméně víra v něco, co neexistuje, nebo třeba hledání jednorožce (něčeho, co neexistuje, i když ono hledání jo) popsal už třeba Montague.
No však to jsou ty inspirační zdroje: Montague, Frege, Tichý... Mě Materna bavil hodně (učil mě), ale nevím, jestli bude vyhovovat tobě. Je spíš takový víc kecací než formální. Ale ty problémy vytahuje myslím pěkně. Nakolik ze své hlavy a nakolik je to oprášení Tichého, to nevím a ani mě to nezajímá.
--
Srry, už je hodně pozdní hodina a já si chci ještě dneska trošku zaprogramovat, prokecali jsme toho už dneska fakt habaděj. Měj se, dám si pauzu. A jsem rád, že se nám aspoň občas daří nějaká ta rozumná debata, je to fajn, díky :)
Nápodobně. Dobrou...
-
tu větu bych nepoužil, nejsem žádný matematik, myslím, že i zboj ji teď použil v žertu (asi)
Zadny zert v tom neni, je to presna odpoved na otazku. Akorat je to odpoved pro vetsinu lidi naprosto bezcenna - a presne presne presne o tomhle ten clanek je - ze lidi jsou zbytecne mateni formalne naprosto spravnymi odpovedmi, ktere jsou ale pro ne bezcenne a matouci. A pokud se jim to i presto podari pochopit, dojde k tomu aha-momentu, osvoji si tenhle slovnik a dalsim zajemcum daji presne tu stejnou matouci a v podstate bezcnennou odpoved.
"jednoduše" v tomto kontextu pro mě znamená nevyhýbat se slovu monáda, když mluvím o použití monadických operací
Ale ten clovek nechce vedet, co to je monada! On chce delat IO operace. To je presne to jadro pudla. Nechci vedet, co je to grupa, chci scitat cisla. Nezajima me vubec definice grupy. Nechci vedet, ze operace scitani ma nejake vlastnosti. Chci proste tu operaci pouzit - secist cisla.
Jo, jakmile si to osvojim, muzeme se bavit o tom, ze scitani cisel se da obecne popsat jako grupa -- uplne stejne jako kdyz se v Haskellu naucim pracovat s io akcemi, muzeme se potom bavit o tom, ze ty io operace + prislusny substrat je vlastne instance obecneho konceptu "monada". Ale nemusime. K tomu, abych io delal, to vubec nepotrebuju vedet, je to irelevantni.
tenhle problem lze velmi snadno vyresi forknutim.
prozatim zde existuje kult vychazejici z prostredi fortranu historicky v hluboke defenzive.
opevnili se a timhle zpusobem se jisti.
pokud chces programovat funkcionalne jako clovek a ne jako okultista,
tak nejsnazsi varianta je:
fork jazyka + prejmenovani paradigmatu treba na parcialni programovani.
konkurencni prostredi se uz postara o vyber masove snesitelneho nazvoslovi.
... a ano, popsal jsem tu zpusob, ktery uz lidi pouzili proti me a to uz po nekolikate vytocil do cervena stejne jak jste zminili ten brajgl v terminologii. vlastne nevim proc se nechci pridat k tomuhle kultu :-)
-
a nez nekdo zacne argumentovat, ze mezi tema dvema neni souvislost. tak sice to nemusi byt hlavni motivace vzniku, ale je to celkem viditelne hlavni motivace "uchyceni se".
ctu to tak, ze po dlouhem stabilnim obdobi F66 prislo F77 nasledovalo obdobi na konci zivotniho cyklu jednoho obdobi kariery a s tim pak career break a hledani.
a pak vsichni mi co chcem nejakou miru stability (a specialne ti co proti tehle povahove vlastnosti nechteji bojovat) pak sli smerem vyssi divci matematiky
-
commonsense reasoning a modalita je pro mě "mode of existence". Když nad tím tak přemýšlím, tak o žádné přesné definici "modality" nevím. Hmm... (thinking)
az dopracujes, tak podej zpravu. podle me neexistuje, protoze se pak utopis v rekrzivnosti a budes muset resit jeji ohraniceni jako humanitni logiky.
-
a kdyz to tak vezmu kolem a kolem, tak to resitelne je stejne jako je videt u supertasku nebo praci s hypotezou kontinua. staci nedrzet se vnoreni rekurze, ale ten problem strukturovat do alternujicich iteratoru navzajem se modifikujicich.
-
bude to obdobne jako uvazujes o existenci nebo resitelnosti https://www.youtube.com/watch?v=ffUnNaQTfZE&t=5m40s
s) senzor barvy je vstup nezodpovezene otazky
c) jedna iterace je pravdivost (c)ervene,
m) druha iterace je pravdivost (m)odre,
c-m) mezi sebou maji obdobu inhibicni synapse terminal bulb - soma, ktera zasjisti prepnuti,
b..d) nad sebou maji resoluci, ktera resi soucasne (b)arvu i (d)okonceni,
b-c, d-c, b-m, d-m, s-c, s-m) maji obdobu synapse terminal bulb - dendrit s kolinearnim prubehem receptoru.
s je v podstate vystup,
d,b je hypoteza vstupu
s a b se excituji soucasne jako hledani reseni k otazce.
s posle pod sebe do sdilene FIFO cervena, modra, (i fialova, atd) s nejakym nizkym TTL
TTL vyjadrujicim kolik kroku zanoreni terminal bulb - dendrit se muze pouzit. s docasnym vyrazenim ze sdilene FIFO na aktualni urovni, nerika to nic o poctu uziti bulb - soma s inhibici a stalou pritomnosti ve sdilene FIFO na aktualni urovni
kdybych to mel implementovat, tak asi neco jako cache tabulky s castecnym prekryvem cachujici polozky resolveru a jejich provazani a inhibici, ktera vyjadruje jejich alteraci a modifikaci
takhle nejak obdobne by se musela ta definice strukturovat, aby se s ni (ne)dalo pracovat
-
pro doplneni
https://www.youtube.com/watch?v=Chr3rQ6Vpcw&t=7m10s
https://www.youtube.com/watch?v=SrU9YDoXE88
https://www.youtube.com/watch?v=yg44T2HcA2o
https://www.youtube.com/watch?v=FO10z7FX13c
-
a kdyz to tak vezmu kolem a kolem, tak to resitelne je stejne jako je videt u supertasku nebo praci s hypotezou kontinua. staci nedrzet se vnoreni rekurze, ale ten problem strukturovat do alternujicich iteratoru navzajem se modifikujicich.
Co žes to chtěl říct o té hypotéze kontinua?
-
uplne stejne jak vidis, ze pracuje pri vysvetlovani s podobnosti. stejne jako se pracuje v tom zenovi.
https://www.youtube.com/watch?v=SrU9YDoXE88&t=15m33s
a ze nad tim vyrobi neco jako trojuhelnikovou topologii se smerovosti.
https://www.youtube.com/watch?v=SrU9YDoXE88&t=18m50s
v podstate je to o tom, ze potrebujes system, ktery odpovida paralelnimu vyhodnocovani nekolika timed automata. kterymu provazes nektery casti jednotlivych automatu na stack na iteraci a jiny na alternaci. v podstate se zbavis klasickeho matematickeho pojeti stability rekurzivniho stacku a soucasne zvysis rekurzivnost navratove hodnoty.
-
a hlavne teda paralelnost cest v te topologii vysledku
-
TLDR: jak vypada v prologu nebo necem podobnem interpretace nerozhodnutelnost?
-
uplne stejne jak vidis, ze pracuje pri vysvetlovani s podobnosti. stejne jako se pracuje v tom zenovi.
https://www.youtube.com/watch?v=SrU9YDoXE88&t=15m33s
a ze nad tim vyrobi neco jako trojuhelnikovou topologii se smerovosti.
https://www.youtube.com/watch?v=SrU9YDoXE88&t=18m50s
v podstate je to o tom, ze potrebujes system, ktery odpovida paralelnimu vyhodnocovani nekolika timed automata. kterymu provazes nektery casti jednotlivych automatu na stack na iteraci a jiny na alternaci. v podstate se zbavis klasickeho matematickeho pojeti stability rekurzivniho stacku a soucasne zvysis rekurzivnost navratove hodnoty.
Přiznej se, ty tvé komentáře píše random generator ;)
-
Hoši, téma zní "Jak si rozšiřujete vědomosti" a ne "Jak se hádáte". Připadá mi, že vy dva - zboj, Prýmek - si dycky usurpujete nějaký téma pro sebe, rozjedete tam ty své žabomyší války a vůbec vám nevadí, že ste absolutně OT... ::) ;D
Ale i tak ty vaše dohady rád čtu, protože i když mám někdy problém porozumět o čem je řeč, i tak se něčemu přiučim a díky vám si i občas něco nastuduju, takže vlastně jste tím oklikou splnili účel tohoto tématu - "Jak si rozšiřujete své vědomosti".
Jinak co říkáte na tuto teorii?
Tohle všechno ještě nic neni, proti tomu, že vlastně neexistujeme. Vysvětlím. Je známo, že existuje nekonečné množství světů, už proto, že prostor, v němž se mohou nacházet je nekonečný. Zdaleka ne všechny jsou však obydlené. Musí tedy existovat konečný počet obydlených světů. Jakékoliv konečné číslo děleno nekonečnem dává výsledek, který se natolik blíží pouhému nic, že je úplně zanedbatelný. Lze tedy říct, že populace všech planet ve vesmíru je nulová. Z toho vyplývá, že i populace celého vesmíru je nulová, a pokud se čas od času setkáváte s nějakými lidmi, jsou pouhým výtvorem chorobné představivosti. Tato informace je stará nějakých 29 let, ovšem v žádných oficiálních studiích se s ní nesetkáte. Ono by to totiž to celé neexistující lidstvo nemuselo psychicky unést.
-
rozjedete tam ty své žabomyší války a vůbec vám nevadí, že ste absolutně OT... ::) ;D
Až na tu odbočku k vyřešení starých účtů z jiného tématu to bylo docela ontopic - celá ta debata se totiž rozvinula od teze "k programování v Haskellu potřebujete znát teorii kategorií" a z toho se to pak zúžilo na "k psaní IO v Haskellu potřebujete pochopit monády". A v tomhle jsme se na dlouho zasekli (zbytečně).
Byla to prostě (opět) debata na téma "Jak hluboko do králičí nory je potřeba jít?", což je myslím celkem ontopic, akorát by ta debata nemusela být tak dlouhá, kdyby byla větší vůle porozumět si...
-
uplne stejne jak vidis, ze pracuje pri vysvetlovani s podobnosti. stejne jako se pracuje v tom zenovi.
https://www.youtube.com/watch?v=SrU9YDoXE88&t=15m33s
a ze nad tim vyrobi neco jako trojuhelnikovou topologii se smerovosti.
https://www.youtube.com/watch?v=SrU9YDoXE88&t=18m50s
v podstate je to o tom, ze potrebujes system, ktery odpovida paralelnimu vyhodnocovani nekolika timed automata. kterymu provazes nektery casti jednotlivych automatu na stack na iteraci a jiny na alternaci. v podstate se zbavis klasickeho matematickeho pojeti stability rekurzivniho stacku a soucasne zvysis rekurzivnost navratove hodnoty.
Přiznej se, ty tvé komentáře píše random generator ;)
beru to jako poklonu. kvalitni random generator je hodne nedostatkove a cenene zbozi
-
a ted vazne. nepotrebuju lichotky od tebe, ale nekoho, kdo nema ADD a dokaze to dotahnout do funkcniho matematickeho aparatu aplikovatelneho ve vypoctech jedincem. cili optimalne dokazat, ze jde udelat uniprocesorova serializovana implementace se stejnou popisnou schopnosti jako ten brajglik co kazdy nosi na krku, vetsina jen jako vesak na ozdoby.
-
uplne stejne jak vidis, ze pracuje pri vysvetlovani s podobnosti. stejne jako se pracuje v tom zenovi.
https://www.youtube.com/watch?v=SrU9YDoXE88&t=15m33s
a ze nad tim vyrobi neco jako trojuhelnikovou topologii se smerovosti.
https://www.youtube.com/watch?v=SrU9YDoXE88&t=18m50s
v podstate je to o tom, ze potrebujes system, ktery odpovida paralelnimu vyhodnocovani nekolika timed automata. kterymu provazes nektery casti jednotlivych automatu na stack na iteraci a jiny na alternaci. v podstate se zbavis klasickeho matematickeho pojeti stability rekurzivniho stacku a soucasne zvysis rekurzivnost navratove hodnoty.
Přiznej se, ty tvé komentáře píše random generator ;)
pro poradek, nebavi me zadny soucasny programovaci jazyk. vymyslim co mi prekazi v soucasnych, abych se dopracoval k AI-paradigmatu.
-
Hoši, téma zní "Jak si rozšiřujete vědomosti" a ne "Jak se hádáte". Připadá mi, že vy dva - zboj, Prýmek - si dycky usurpujete nějaký téma pro sebe, rozjedete tam ty své žabomyší války a vůbec vám nevadí, že ste absolutně OT... ::) ;D
Ale i tak ty vaše dohady rád čtu, protože i když mám někdy problém porozumět o čem je řeč, i tak se něčemu přiučim a díky vám si i občas něco nastuduju, takže vlastně jste tím oklikou splnili účel tohoto tématu - "Jak si rozšiřujete své vědomosti".
Jinak co říkáte na tuto teorii?
Tohle všechno ještě nic neni, proti tomu, že vlastně neexistujeme. Vysvětlím. Je známo, že existuje nekonečné množství světů, už proto, že prostor, v němž se mohou nacházet je nekonečný. Zdaleka ne všechny jsou však obydlené. Musí tedy existovat konečný počet obydlených světů. Jakékoliv konečné číslo děleno nekonečnem dává výsledek, který se natolik blíží pouhému nic, že je úplně zanedbatelný. Lze tedy říct, že populace všech planet ve vesmíru je nulová. Z toho vyplývá, že i populace celého vesmíru je nulová, a pokud se čas od času setkáváte s nějakými lidmi, jsou pouhým výtvorem chorobné představivosti. Tato informace je stará nějakých 29 let, ovšem v žádných oficiálních studiích se s ní nesetkáte. Ono by to totiž to celé neexistující lidstvo nemuselo psychicky unést.
.
- Pravda, vůbec mi nevadilo být OT.
- Ta "teorie" je kravina.
-
...
Ale i tak ty vaše dohady rád čtu, protože i když mám někdy problém porozumět o čem je řeč, i tak se něčemu přiučim a díky vám si i občas něco nastuduju, takže vlastně jste tím oklikou splnili účel tohoto tématu - "Jak si rozšiřujete své vědomosti".
;D :)
+1
Jinak co říkáte na tuto teorii?
Tohle všechno ještě nic neni, proti tomu, že vlastně neexistujeme. Vysvětlím. Je známo, že existuje nekonečné množství světů, už proto, že prostor, v němž se mohou nacházet je nekonečný. Zdaleka ne všechny jsou však obydlené. Musí tedy existovat konečný počet obydlených světů. Jakékoliv konečné číslo děleno nekonečnem dává výsledek, který se natolik blíží pouhému nic, že je úplně zanedbatelný. Lze tedy říct, že populace všech planet ve vesmíru je nulová. Z toho vyplývá, že i populace celého vesmíru je nulová, a pokud se čas od času setkáváte s nějakými lidmi, jsou pouhým výtvorem chorobné představivosti. Tato informace je stará nějakých 29 let, ovšem v žádných oficiálních studiích se s ní nesetkáte. Ono by to totiž to celé neexistující lidstvo nemuselo psychicky unést.
Anýbržto "Proč Šemík uháněl k Radotínu, zatímco Horymír uháněl k Neumětelům?"
-
rozjedete tam ty své žabomyší války a vůbec vám nevadí, že ste absolutně OT... ::) ;D
Až na tu odbočku k vyřešení starých účtů z jiného tématu to bylo docela ontopic - celá ta debata se totiž rozvinula od teze "k programování v Haskellu potřebujete znát teorii kategorií" a z toho se to pak zúžilo na "k psaní IO v Haskellu potřebujete pochopit monády". A v tomhle jsme se na dlouho zasekli (zbytečně).
Byla to prostě (opět) debata na téma "Jak hluboko do králičí nory je potřeba jít?", což je myslím celkem ontopic, akorát by ta debata nemusela být tak dlouhá, kdyby byla větší vůle porozumět si...
V tom "zúžení" byl ten problém, protože zrovna IO není úplně ideální příklad, na rozdíl od Maybe nebo třeba těch seznamů. Nehledě na to, že o monádách vlastně původně řec vůbec nebyla...
-
vlastně neexistujeme. Vysvětlím. Je známo, že existuje nekonečné množství světů, už proto, že prostor, v němž se mohou nacházet je nekonečný. Zdaleka ne všechny jsou však obydlené. Musí tedy existovat konečný počet obydlených světů. Jakékoliv konečné číslo děleno nekonečnem dává výsledek, který se natolik blíží pouhému nic, že je úplně zanedbatelný. Lze tedy říct, že populace všech planet ve vesmíru je nulová. Z toho vyplývá, že i populace celého vesmíru je nulová, a pokud se čas od času setkáváte s nějakými lidmi, jsou pouhým výtvorem chorobné představivosti. Tato informace je stará nějakých 29 let, ovšem v žádných oficiálních studiích se s ní nesetkáte. Ono by to totiž to celé neexistující lidstvo nemuselo psychicky unést.
https://www.youtube.com/watch?v=bVqpwlB3MlM
-
...
- Ta "teorie" je kravina.
Tu teorii zmiňuje Stopařův průvodce po Galaxii, takže to musí být pravda...
"Existuje teorie, která tvrdí, že kdyby jednou někdo přišel na to, k čemu vesmír je a proč tu je, vesmír by okamžitě zmizel a jeho místo by zaujalo něco ještě mnohem bizardnějšího a nevysvětlitelnějšího.
Existuje jiná teorie, která tvrdí, že už se stalo."
http://ai.unas.cz/stopar/2-rest.htm (http://ai.unas.cz/stopar/2-rest.htm)
-
...
- Ta "teorie" je kravina.
Tu teorii zmiňuje Stopařův průvodce po Galaxii, takže to musí být pravda...
"Existuje teorie, která tvrdí, že kdyby jednou někdo přišel na to, k čemu vesmír je a proč tu je, vesmír by okamžitě zmizel a jeho místo by zaujalo něco ještě mnohem bizardnějšího a nevysvětlitelnějšího.
Existuje jiná teorie, která tvrdí, že už se stalo."
http://ai.unas.cz/stopar/2-rest.htm (http://ai.unas.cz/stopar/2-rest.htm)
To zní jako Vopěnkova teze o neexistenci množiny přirozených čísel.
-
pro poradek, nebavi me zadny soucasny programovaci jazyk. vymyslim co mi prekazi v soucasnych, abych se dopracoval k AI-paradigmatu.
a ze tomu tak bylo driv nez to tu vyvrelo, tak kuk sem http://forum.root.cz/index.php?topic=13078.msg163341#msg163341
-
dadaismus
-
a tohle prirovnani uz jako urazku z omylu beru, protoze me radis pod dereismus. tim jak si nedokazes sestavit stejny model souvislosti.
protoze zrovna tyhle dve
http://www.cs.berkeley.edu/~pabbeel/papers/2015_AAAI_loops.pdf
http://www.root.cz/clanky/zpracovani-obrazu-analogovym-pocitacem-mozkem-co-je-uvnitr-a-proc/nazory/509121/
jsou si podobne jak vejce vejci a podivej se na datum.
-
i kdyz pokud to vezmu tvym pohledem, tak o tobe odpoved rika, ze to zkousis resit empaticky emocionalne. mapujes to nejspis na kulturni zebricek hodnot, kde ma bud cenu umeni, (ne)uspokojeni z umeni nebo hodnota umeleckeho dila. takze to je to 3:1 neporozumeni:urazka
-
V tom "zúžení" byl ten problém, protože zrovna IO není úplně ideální příklad, na rozdíl od Maybe nebo třeba těch seznamů. Nehledě na to, že o monádách vlastně původně řec vůbec nebyla...
Tak celé se to odpíchlo od mé (záměrně) provokativní teze
Nejenom, že to není pravda, ale v jistým smyslu může být ta znalost i vyloženě zhoubná (ne pro toho člověka, ale pro jeho okolí)
- a pojem "IO monáda" je vyborný příklad. List je sice taky monáda, ale nikdo není takový blázen, aby říkal "seznam prvků se v Haskellu implementuje pomocí monády List". Takže List by pro tenhle účel nebyl dobrej příklad, protože tam ta zhoubnost znalosti produkující nesrozumitelnost není.
-
V tom "zúžení" byl ten problém, protože zrovna IO není úplně ideální příklad, na rozdíl od Maybe nebo třeba těch seznamů. Nehledě na to, že o monádách vlastně původně řec vůbec nebyla...
Tak celé se to odpíchlo od mé (záměrně) provokativní teze
Nejenom, že to není pravda, ale v jistým smyslu může být ta znalost i vyloženě zhoubná (ne pro toho člověka, ale pro jeho okolí)
- a pojem "IO monáda" je vyborný příklad. List je sice taky monáda, ale nikdo není takový blázen, aby říkal "seznam prvků se v Haskellu implementuje pomocí monády List". Takže List by pro tenhle účel nebyl dobrej příklad, protože tam ta zhoubnost znalosti produkující nesrozumitelnost není.
Možná by bylo bývalo lepší vyvážit ten negativní příklad nějakým pozitivním, protože říct A bez B svádí k misinterpretacím (a ty vedou diskusi do pekel).
-
Možná by bylo bývalo lepší vyvážit ten negativní příklad nějakým pozitivním, protože říct A bez B svádí k misinterpretacím (a ty vedou diskusi do pekel).
Tak použil jsem obraty "může být", "v jistým smyslu" - to snad dostatečně naznačuje, že to není vždy. Ale myslím si, že o tomhle rozměru se málo mluví: pokud vzdělanost vede k elitářství a nesrozumitelnosti, je to spíš minus než plus.
Myslím, že v bonmotu
If you can't explain it simply, you don't understand it well enough.
je hodně pravdy. Udělat věci složitými umí každý. Udělat věci jednoduchými, to je dar, který má málo kdo.
-
misinterpretacím
dik zboji, prave si mi potvrdil funkcnost jednoho algoritmu uceni napodobou rizenim pozornosti
-
Možná by bylo bývalo lepší vyvážit ten negativní příklad nějakým pozitivním, protože říct A bez B svádí k misinterpretacím (a ty vedou diskusi do pekel).
Tak použil jsem obraty "může být", "v jistým smyslu" - to snad dostatečně naznačuje, že to není vždy. Ale myslím si, že o tomhle rozměru se málo mluví: pokud vzdělanost vede k elitářství a nesrozumitelnosti, je to spíš minus než plus.
Myslím, že v bonmotu
If you can't explain it simply, you don't understand it well enough.
je hodně pravdy. Udělat věci složitými umí každý. Udělat věci jednoduchými, to je dar, který má málo kdo.
1) Za tu "zhoubnost" snad nemůže znalost, ale jen formulace, ne?
2) Einstein: "Make things as simple as possible, but not simpler." Že třeba Zemanovi v životě nikdy nevysvětlím forsing neznamená, že to špatně vysvětluju. Některé koncepty jsou prostě inherentně složité. Fakt, že podle statistik končí matematická intuice 90% lidí u trojčlenky, přímo implikuje, že max. 10% lidí je schopno dostatečně porozumět například té teorii kategorií (u programátorů bude to procento pochopitelně vyšší, jde o omezený vzorek tíhnoucí k technickým oborům).
-
no tvl. nebol som tu asi 2 dni a pekne narastla diskusia. Pravdou je, ze nemam ani chut citat tieto zvasty a kydy, pretoze to vobec nesuvisi s temou. prve 2 stranky boli k teme a super, ale dalsich 15 stranok je kopa hnoja a nic nevypovedaju o tom, na co som sa pytal. Mrzi ma to, ale kazdy si tu chodi porovnavat vedomosti a potom sa tu dohaduju o niecom a k nicomu ani nedospeju. radsej keby sa venovali povodnej otazke. ale skoda reci. mrzi ma to.
-
1) Za tu "zhoubnost" snad nemůže znalost, ale jen formulace, ne?
To jo. Ale jde o to, k čemu člověk znalost používá a jestli si je vědom toho, že každá znalost ho potenciálně vzdaluje od těch, kteří ji nemají...
...a k tomu jsou ty monády právě výborná ilustrace. Prý jsou začarované:
Once you understand what monads are, and why they exist, you lose the ability to explain it to anybody. [Douglas Crockford]
:)
Je to principielně celkem jednoduchá věc, ale přesto se s ní pojí až bájná neschopnost ji vysvětlit a pochopit. Je to prča :)
Některé koncepty jsou prostě inherentně složité. Fakt, že podle statistik končí matematická intuice 90% lidí u trojčlenky, přímo implikuje, že max. 10% lidí je schopno dostatečně porozumět například té teorii kategorií
Však o to nejde, vysvětlit jim všechno. Něco prostě s IQ<x nedáš. Ale jde o to, umět podat to stravitelnou formou to nejpodstatnější a nedopustit se přitom příliš zavádějících formulací (jako třeba to "monády jsou burritos").
Převyprávět učebnici umí každý, kdo tu kterou věc pochopil. Ale vynalézt způsob vysvětlení vhodný pro konkrétního posluchače, to je úplně jiný kafe.
-
ale dalsich 15 stranok je kopa hnoja
Jestli tu diskusi považuješ za kopu hnoje, tak nevím nevím, jak moc upřímně to s tím sebevzděláváním myslíš :(
-
no tvl. nebol som tu asi 2 dni a pekne narastla diskusia. Pravdou je, ze nemam ani chut citat tieto zvasty a kydy, pretoze to vobec nesuvisi s temou. prve 2 stranky boli k teme a super, ale dalsich 15 stranok je kopa hnoja a nic nevypovedaju o tom, na co som sa pytal. Mrzi ma to, ale kazdy si tu chodi porovnavat vedomosti a potom sa tu dohaduju o niecom a k nicomu ani nedospeju. radsej keby sa venovali povodnej otazke. ale skoda reci. mrzi ma to.
TL;DR verze:
zkuste si nějaký funkcionální jazyk (za sebe říkám Haskell), jestli děláte v .NET tak možná raději F# a jestli narazíte na monády, tak to moc neřešte, jestli u toho vydržíte, tak se porozumění dostaví samo
-
1) Za tu "zhoubnost" snad nemůže znalost, ale jen formulace, ne?
To jo. Ale jde o to, k čemu člověk znalost používá a jestli si je vědom toho, že každá znalost ho potenciálně vzdaluje od těch, kteří ji nemají...
...a k tomu jsou ty monády právě výborná ilustrace. Prý jsou začarované:
Once you understand what monads are, and why they exist, you lose the ability to explain it to anybody. [Douglas Crockford]
:)
Je to principielně celkem jednoduchá věc, ale přesto se s ní pojí až bájná neschopnost ji vysvětlit a pochopit. Je to prča :)
Některé koncepty jsou prostě inherentně složité. Fakt, že podle statistik končí matematická intuice 90% lidí u trojčlenky, přímo implikuje, že max. 10% lidí je schopno dostatečně porozumět například té teorii kategorií
Však o to nejde, vysvětlit jim všechno. Něco prostě s IQ<x nedáš. Ale jde o to, umět podat to stravitelnou formou to nejpodstatnější a nedopustit se přitom příliš zavádějících formulací (jako třeba to "monády jsou burritos").
Převyprávět učebnici umí každý, kdo tu kterou věc pochopil. Ale vynalézt způsob vysvětlení vhodný pro konkrétního posluchače, to je úplně jiný kafe.
Njn, tak jestli to nakonec celé zredukujeme na pedagogické schopnosti, tak do toho se vrtat nebudu, protože kromě objasnění motivace skrývající se za rovnicí pro entropii jsem nic pedagogicky cenného nevymyslel (a ani se o to nepokoušel, tu entropii jsem chtěl hlavně pochopit já sám).
-
je to tom umet si predstavit komu vysvetlujes.
kdyz to vysvetlujes nekomu se znalosti matematickeho aparatu, tak ma na co mapovat informace.
kdyz to vysvetlujes nekomu bez znalosti matematickeho aparatu, tak mu musis nabidnout nekolik lzi pro male deti a zpusob jak ji slepit do stejneho vysledku.
-
15 stranok je kopa hnoja
TLDR: cela matika se zasekla na typologii 4 problemu a jejich variaci v ruznych instancich. diskuse je o tom, jak nektere lidi presvedcit, ze nema smysl vysvetlovat kazdou instanci, ale jen tu typologii a naucit jak ji v kazde instanci identifikovat v jakem poradi a provazani se tam nachazi.
-
protože člověk pak nechápe základní principy a získá "blbé" návyky, kterých se pak těžko zbavuje. Jinými slovy, chce to dobrou knížku nebo radu zkušeného.
10 stranek o neustupnosti z toho co je nahore, radsi nevysvetlit nez aby se obor deformoval spolupraci s nekym, kdo ma kvalitu kodu jak prumerna korporace.
-
ale dalsich 15 stranok je kopa hnoja
Jestli tu diskusi považuješ za kopu hnoje, tak nevím nevím, jak moc upřímně to s tím sebevzděláváním myslíš :(
ale tu sa riesia veci, ktore vobec so samovzdelavanim nesuvisia. vy ste si tu zacali rozoberat vlastne problemy, vlastne veci. ocakaval som konstruktivnu debatu, z ktorej by mali aj ini ludia uzitok
-
ale dalsich 15 stranok je kopa hnoja
Jestli tu diskusi považuješ za kopu hnoje, tak nevím nevím, jak moc upřímně to s tím sebevzděláváním myslíš :(
ale tu sa riesia veci, ktore vobec so samovzdelavanim nesuvisia. vy ste si tu zacali rozoberat vlastne problemy, vlastne veci. ocakaval som konstruktivnu debatu, z ktorej by mali aj ini ludia uzitok
Mozna par stran tu bylo trosku soukromych, ale rozhodne ne 15. Diskuze se proste vyviji, ale veci k FP, Haskellu, JavaScriptu, monadach a jak se to ucit nebo vyucovat (jaky pomer teorie/praxe atp.) je IMO k tematu "Jak si rozšiřujete své vědomosti?".
-
Njn, tak jestli to nakonec celé zredukujeme na pedagogické schopnosti, tak do toho se vrtat nebudu, protože kromě objasnění motivace skrývající se za rovnicí pro entropii jsem nic pedagogicky cenného nevymyslel (a ani se o to nepokoušel, tu entropii jsem chtěl hlavně pochopit já sám).
To me zajima. Entropie informacni, nebo termodynamicka, nebo obe? :-)
-
ale dalsich 15 stranok je kopa hnoja
Jestli tu diskusi považuješ za kopu hnoje, tak nevím nevím, jak moc upřímně to s tím sebevzděláváním myslíš :(
ale tu sa riesia veci, ktore vobec so samovzdelavanim nesuvisia. vy ste si tu zacali rozoberat vlastne problemy, vlastne veci. ocakaval som konstruktivnu debatu, z ktorej by mali aj ini ludia uzitok
Mozna par stran tu bylo trosku soukromych, ale rozhodne ne 15. Diskuze se proste vyviji, ale veci k FP, Haskellu, JavaScriptu, monadach a jak se to ucit nebo vyucovat (jaky pomer teorie/praxe atp.) je IMO k tematu "Jak si rozšiřujete své vědomosti?".
Teď by to ještě chtělo nějak efektivně shrnout, teda myslím tu věcnou část. Aneb monády po tisící prvé...
-
Njn, tak jestli to nakonec celé zredukujeme na pedagogické schopnosti, tak do toho se vrtat nebudu, protože kromě objasnění motivace skrývající se za rovnicí pro entropii jsem nic pedagogicky cenného nevymyslel (a ani se o to nepokoušel, tu entropii jsem chtěl hlavně pochopit já sám).
To me zajima. Entropie informacni, nebo termodynamicka, nebo obe? :-)
Obě, vždyť je to to samé. Když nekonečné opice píšou Shakespeara a mají přitom dodržet určitý počet každého písmene (tj. je dána nějaká abeceda s pravděpodobnostním rozdělením), lze počet možných textů vyjádřit multinomickým koeficientem. Ten se odmocní délkou textu (entropie na ní nemá záviset, takže uděláme něco jako geometrický průměr) a nakonec zleva přidáme logaritmus (chceme, aby entropie byla aditivní). Získaná formule se pomocí Stirlingova vzorce zjednoduší a vyjde vzoreček pro entropii. Mám ověřeno, že takovéto kombinatorické odvození vyvolává u studentů "aha efekt".
-
ale dalsich 15 stranok je kopa hnoja
Jestli tu diskusi považuješ za kopu hnoje, tak nevím nevím, jak moc upřímně to s tím sebevzděláváním myslíš :(
ale tu sa riesia veci, ktore vobec so samovzdelavanim nesuvisia. vy ste si tu zacali rozoberat vlastne problemy, vlastne veci. ocakaval som konstruktivnu debatu, z ktorej by mali aj ini ludia uzitok
ja bych ani nerekl, ze to nesouvisi se samovzdelavanim.
naopak bych rekl, ze to HOOODNE souvisi se samovzdelavanim.
(nikoliv:samo-) vzdelani, je ta cast statniho bice definovana jako povinna skolni dochazka.
vedle toho je cast statniho cukru, kam patri cokoliv nad zakladni povinnost az do doby kdy stat hradi pridruzene naklady.
a to se prolina s volnym casem mimo skolu, ktery muzes uzit k samovzdelavani.
a pak je tu cast, kdy nepusobi ani statni cukr ani statni bic. a je tu pomerne dobra ukazka, ze rozhodne je lepsi se vyhnout univerzitam tretiho veku presne z duvodu, ktery jsou videt tady na tech 15 stranach fora a rozebrany tady: https://www.youtube.com/watch?v=lj9ORxo0kwo a https://www.youtube.com/watch?v=RU0qdyodmg8