Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Mirek Prýmek

Stran: 1 ... 206 207 [208] 209 210 ... 618
3106
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 23:49:59 »
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".

3107
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 23:32:31 »
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...

3108
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 23:28:46 »
"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.

3109
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 23:00:15 »
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 :)

3110
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 22:39:23 »
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.

3111
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 22:24:07 »
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ý :)

3112
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 22:02:25 »
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?

3113
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 21:50:14 »
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
Kód: [Vybrat]
(>>=) :: Monad m => m a -> (a -> m b) -> m b
by bylo potřeba mít
Kód: [Vybrat]
(>>=) :: IO a -> (a -> IO b) -> IO b
a měli bysme triviálně IO bez monády.


3114
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 21:25:35 »
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?)

3115
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 21:20:41 »
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í ;) )

3116
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 21:06:31 »
ten program :)
můj by vypadal takhle:
main = getLine >>= putStrLn
A můj by vypadal takhle:
Kód: [Vybrat]
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?!

3118
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 20:54:43 »
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.

3119
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 20:47:12 »
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!):

Kód: [Vybrat]
putStr :: String -> Task

a getStr takovyhle:

Kód: [Vybrat]
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.

3120
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 20:16:58 »
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:

Citace
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?!

Stran: 1 ... 206 207 [208] 209 210 ... 618