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 ... 116 117 [118] 119 120 ... 618
1756
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 15:42:44 »
Tak zaprvé by mě zajímalo, co to je "neformální slovo".
Slovo, které se používá v různých kontextech různě a neexistuje obecně přijímaná definice.

Zadruhé nikdo netvrdí, že to nutně ve všech kontextech znamená použít funkci lift, jak ji definuje Haskell
Pokud by to netvrdil, musel by mi přiznat právo to slovo použít v jiném (analogickém) smyslu. A nemohl by napsat např. tohle:
použil jste v českém textu anglické slovo, které má v daném kontextu velmi specifický význam (https://wiki.haskell.org/Lifting), kdybyste chtěl použít analogii, čekal bych české slovo
a bez toho předpokladu by ani nedával smysl tenhle příspěvek:
Ta formulace je špatně v tom, že ona funkce nějakou “obyčejnou” hodnotu liftovat může, ale nemusí. V obecném případě tato funkce vrací monádu
Pokud by zboj Idris byl ochotný akceptovat např. definici slovem "liftovat" myslíme jakýkoli přenos něčeho z nějaké úrovně do nějaké vyšší, nemohl by tohle napsat.

1757
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 14:50:19 »
V jakém smyslu není pravda, že "Prýmek píše že MUSÍ"?
V tom smyslu, že Prýmek o žádné "funkci lift" nemluvil. Což lze snadno nahlédnout tím, že Prýmek mluvil o PHP (resp. o obecném konceptu), kde žádná "funkce lift" ani není.

Asi stokrát bylo málo, tak po sto první: neformální slovo "liftovat" nemusí nutně ve všech kontextech znamenat "použít funkci lift, jak ji definuje Haskell"

Zkus si tu svoji větu číst ještě tolikrát, dokud si nevšimneš
Zkus si tu diskusi přečíct ještě jednou, aniž bys do ní vkládal předpoklad "liftovat = použít lift z Haskellu".

Mohl bych se chovat jako ty a napsat Jsi slepý? Nevidíš, že v tom příspěvku je "liftovat" a ne "použít funkci lift"?. Neudělám to.

1758
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 13:56:40 »
dík za připomínku, ale nechci tady šermovat teorií kategorií, nejsem matematik, ten pojem IMHO ani formální definici nepotřebuje, aby se dal normálně použít v diskuzi mezi programátory, takže to lift (f a) == lift f (lift a) se mi zdá v neformálním prostředí dostačující
Ano, určitě je dostačující
A vejde se do téhle definice https://wiki.haskell.org/Lifting#Arrow_lifting ?

Pokud budu mít funkci f: String -> Int, tak jak bude v tomhle případě vypadat to "lift a"?

1759
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 12:38:24 »
Obávám se, že asi každý čteme jinou diskuzi. :)
Taky mám ten dojem :)

Já nevytrhávám sousloví z kontextu, nepřekrucuji cizí věty
Opakuju: nejsem si vědom toho, že bych to dělal. Pokud máš nějaký konkrétní příklad, budu rád, když mi ho ukážeš.

a stále čekám na tvůj důkaz, že "to nejde" (když už sem taháš matematiku, důkazy a přesné vyjadřování, se kterým, se vší úctou, máš problém - viz třeba strana 10).
No jestli ti to k něčemu je, můžu :)

Kontext:
Dal ti protipříklad k tvému tvrzení.
Nedal. To, ze k necemu napisu, ze to je protipriklad, z toho nedela protipriklad.

Nedal, protoze dat nejde.

Jak už jsem tady napsal asi milionkrát, použil jsem v neformální větě obrat "tato funkce liftuje hodnotu do monády".

Neformální větu jde dost těžko nějak formálně vyvrátit. "v" nebo Idris by mě nejspíš museli prvně požádat, abych ji formuloval nějak formálně, a potom by mohli přijít s protipříkladem. Což neudělali, takže i kdyby se na hlavu postavili, tak jakýkoliv údajný "protipříklad" by byl irelevantní.

Nebo by mohli postupovat taky neformálně a mohli by argumentovat, že to slovo má jeden konkrétní všeobecně přijímaný význam a já jsem ho použil jinak. To by bylo ok, jenže jsem podal příklad, že se používá různě v různých kontextech. Takže taky no go...

Jiná cesta mě nenapadá, takže mám za to, že je to tím dokázáno.

Upřímně, fakt mě tato diskuze nebaví, ať už přijde kdo chce s čím chce, tak ho odpálkuješ, protože v Amazonii prší a existuje kobra delší než půl metru (*nadsázka*). Tak se bavit nedá.
Pokud by to tak bylo, tak by pro něj bylo velmi jednoduché říct "fakt, že v Amazonii prší, je irelevantní pro otázku, jestli je legitimní říct, že ona funkce "liftuje"".

Nemůžu za to, že místo jasné strukturované argumentace se tady komunikuje stylem "douč se to".

1760
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 12:02:53 »
Díky, žes mi ušetřil čas a já se nemusel zase zapojovat. Problém je že to dělá vždycky a všude a mě už to prostě nebaví.
Hm, tak to mě mrzí, že ani ty nevidíš, že to "zatímco Prýmek píše že MUSÍ" není pravda a kdyby Idris četl, co jsem psal, tak by mu to mělo dojít. Jestliže si ošoupávám klávesnici s dlouhým vysvětlením, že jsem něco netvrdil, a o pár příspěvků nastoupí někdo s tím, že zase zkonstatuje, že jsem to tvrdil (a vyvrací mi to), tak prostě už není jak reagovat, než dát oči v sloup.

Možná trošku ubrat na ješitnosti. Ne všichni mají potřebu machrovat. Proč se každá diskuze s tebou musí zvrhnout na poměřování....
Sorry, ale tomuhle vážně při nejlepší vůli nerozumím. Podívej se, byl to v, kdo do diskuse nastoupil (dost zvostra) s tím, že já nemám pravdu. A jediný, co jsem po něm celou dobu chtěl, bylo, aby mi tohle svoje tvrzení dokázal. Když se cítíš, tak ok, ukaž se.

Já jsem nic netvrdil, neměl žádnou alternativní svoji verzi, neříkal "v"-ovi, že jeho verze je blbě. Jenom jsem (záměrně) tvrdošijně trval na tom, aby si "v" svou pozici obhájil, když se cítí, že na to má.

Hlavně je vtipné, že chvíli se oháníš Haskellem, chvíli CT, podle toho, jak se ti to hodí.
Ne. Mám dojem, že v CT je pojem "lifting" chápaný jinak než v Haskellu. Což je rozpor s "v"-ovým tvrzením, že jediné správné použití toho termínu je to z Haskellu a kdokoli to použije jinak, je nedouk a měl by si to nastudovat.

Ještě jednou: já jsem NEtvrdil, že jakákoliv z těch definic je správná. To dělal "v".

Neotáčej smysl toho sporu a nepřenášej důkazní břemeno :)

1761
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 11:33:13 »
Teď si uvědomuju že možná nevidíš jednu věc - třeba z mého pohledu jsi "v" žádnou lekci neudělil,
Na to máš samozřejmě právo a je to tvoje věc. Mě zajímalo, jestli tomu "v" opravdu tak dobře rozumí, že má právo machrovat, a ověřil jsem si, že ne. Jestli to ty vidíš, nebo ne, to už je jiná věc.

Mimochodem, "v" vycházel z toho (a koukám, že ty to tak asi taky chápeš), že jediný správný význam slova "lifting" je to, co je v Haskellu jako funkce liftXXX. Pokud ale správně rozumím tomuhle  https://stackoverflow.com/questions/24856963/how-does-lifting-in-a-functional-programming-context-relate-to-category-theory tak to, co je v Haskellu jako "lift" vůbec není to, čemu se "lift" říká v CT. Tak trochu je to dokonce "opačná věc" :)

Ten lift z téhle SO stránky mi přijde přesně odpovídat liftu ze stránky na wiki, kterou jsem odkazoval: https://en.wikipedia.org/wiki/Lift_(mathematics)

Není mi teda moc jasné, proč se vlastně v Haskellu zažil ten "lift" jako něco jinýho. Nebo to možná je to stejný, akorát je potřeba tu kategorii nadefinovat nějak jinak? Nevím, ale zdá se mi to nepravděpodobný. Tady by mohl pomoct Idris, kdyby se mu chtělo chvilku taky psát srozumitelně a vstřícně :)

...no takže minimálně z tohodle je jasný, že žádný jednotný význam pojmu "lifting" není.

1762
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 10:47:48 »
1. na téma "když je něco nějak v Haskellu, tak to neznamená, že to tak je jedině správně":

Tohle mě zaujalo: https://stackoverflow.com/questions/24856963/how-does-lifting-in-a-functional-programming-context-relate-to-category-theory
Anebo míň ezoterický téma:

Na té stránce o liftingu mě zaujalo:
Citace
In principle, Applicative should be a superclass of Monad, but chronologically Functor and Monad were before Applicative. Unfortunately, inserting Applicative between Functor and Monad in the subclass hierarchy would break a lot of existing code and thus has not been done as of today (2011). This is still true as of Jan 2013.
https://wiki.haskell.org/Lifting

Když se podívám na http://hackage.haskell.org/package/base-4.11.0.0/docs/Control-Monad.html tak je tam
Kód: [Vybrat]
class Applicative m => Monad m where
- takže to už opravili? Nebo jsem nechytl, o co tam jde?

1763
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 10:27:13 »
To je podle mě velice podstatná připomínka. Není to ani tak o definici liftu, ale o tom, že výsledná hodnota funkce v bindu NEMUSÍ vzniknout liftováním parametru
Všichni vycházíte ze stejného předpokladu: že slovem "liftovat" musíme myslet "použít funkci lift".

Já jsem to slovo myslel čistě analogicky, neformálně, jako "posunout se z roviny normálních hodnot do roviny monád", žádnou funkci lift jsem neměl na mysli. A zjevně to nebylo moc šikovný, což nemám problém uznat:

Když se něco posunuje na nějakou vyšší úroveň, tak se tomu často říká "lift" (může to znamenat různé věci v různých kontextech, ale společné to má ten "skok do vyššího světa"), takže mě, blbce starýho, po ránu nenapadlo napsat nic jinýho, než že ta funkce "liftuje", což nebylo vůbec šťastný, protože mě mohlo napadnout, že člověk, který zná Haskell, si pod tím slovem představuje něco dost konkrétního.

Jo, asi jsem to slovo neměl takhle použít, někoho to zjevně může zmást. A nehádal bych se o to, kdyby nenastoupil "v" s tak sebejistým tónem, za který si zasloužil dostat lekci.

Bohužel, neznám žádné lepší slovo pro funkci "z jednoho světa do jiného". Ty nějaký znáš?

1764
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 10:16:48 »
ale nechci tady šermovat teorií kategorií
Ale vždyť přesně to jsi dělal:

že vaše prapůvodní tvrzení je konzistentní [...] s Moggim

Navíc pokud máš ambici definovat ten koncept liftu obecně, tak to těžko můžeš dělat pomocí Haskellu. Možná se pletu, ale mám za to, že ten liftA, liftM, lift... je tam zvlášť právě proto, že tam obecný lift (pro cokoli, kde bysme si ho uměli představit) nadefinovat nejde.

(A to ještě pomíjím to, že to slovo jako takové má opravdu různý význam v různých kontextech, žádná "obecná definice" prostě není)

, nejsem matematik, ten pojem IMHO ani formální definici nepotřebuje, aby se dal normálně použít v diskuzi mezi programátory, takže to lift (f a) == lift f (lift a) se mi zdá v neformálním prostředí dostačující
Hele, já respektuju tvoji erudici v Haskellu. Když budu dumat nad tím, jak by se tam něco udělalo, nebo jak je v Haskellu zvykem něco dělat, budu moc rád, když mi to budeš ochotný vysvětlit - a budu poslouchat jak žáček ve škole.

Problém ale je, že chceš, jak říkáš, pomoct rozšířit FP, a přitom se chováš z poloviny jako haskellový fachidiot ("tak, jak je to v Haskellu, tak je to jedině správně") a z druhé poloviny využíváš znalost Haskellu k tomu, abys jím mlátil lidi po hlavě.

Mám za to, že jeden z hlavních důvodů, proč se Haskell nerozšířil, jsou přesně takhle se chovající lidi: programují v tom pět let, cítí se jako kněží desátého zasvěcení ezoterního spolku supermanů a kdokoli má nižší zasvěcení, pro toho mají jenom "tak si to nastuduj, ať taky dosáhneš stejnýho zasvěcení".

Lidi, kteří něčemu opravdu dobře rozumí, se obvykle poznají podle toho, že s tím nedělají vědu a dokážou to vysvětlit tak, aby to druhý pochopil.

-------

No nic, můžem to snad uzavřít a chovat se dál jako lidi :) Měl bych tady takový dva náměty k diskusi:

1. na téma "když je něco nějak v Haskellu, tak to neznamená, že to tak je jedině správně":

Tohle mě zaujalo: https://stackoverflow.com/questions/24856963/how-does-lifting-in-a-functional-programming-context-relate-to-category-theory

2. návrat k původnímu tématu:

Nebavili jsme se o Haskellu. Bavili jsme se o PHP. Jak by podle tebe vypadal lift v PHP - tj. v rámci toho příkladu, ke kterýmu jsem se vyjadřoval?

1765
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 03:00:29 »
...a už fakt ale musím na kutě, dobrou :)

1766
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 03:00:02 »
Myslím, že v byl dostatečně vstřícný a věcný (a obětavý, čas je drahý) a zcela určitě by se tak chovali i ostatní, nebýt provokací.
Ne, nebyl. "v" se zachoval jako namachrovanej pičus a to, co tady předvedl s tou rádobydefinicí jenom dokazuje, že na to nemá sebemenší právo. Tobě právo chovat se jako namachrovanej pičus přiznávám, ty na to aspoň máš. Příjemný to ani tak není, ale člověk se to naučí ignorovat.

"v" dostal, co si zasloužil: divadýlko.

A když někdo napíše, že něco nedává smysl, není to rejpání.
Ale ano, je. Protože kdyby se opravdu snažil pomoci, tak by nenapsal "tohle nedává smysl, nastuduj si to" (což samozřejmě adresát dešifruje jako "seš nýmand, nehodlám s tebou zahazovat svůj majestát"), ale třeba právě to zmíněný "tomuhle nerozumím, taková notace se nepoužívá" (což dešifruje jako "rád bych ti pomohl, ale nerozumím tomu, co se snažíš říct").

Ok, laziness beru na vědomí, ale udržím to tak dvě minuty myslím :)

1767
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 02:32:37 »
Jak říkal v, jestli to čte někdo, kdo se to chce naučit, tak ty ho dokonale mateš.
No, víš, on mě nikdo neplatí za to, abych se učil CT. Pokud na něco takovýho najdu čas hodinu za pár měsíců, je to výjimka. Mám spoustu jiných věcí, který mě zajímají víc a dám jim přednost. Detaily typu co se jak zapisuje se pak bohužel dost často z hlavy vypaří. A stejně tak si občas člověk neuvědomí, že někde něco platí a tímpádem něco jinýho někde na druhým konci nejde...

Mně (a všem ostatním, co by byli potenciálně rádi, kdyby jim aspoň něco z toho v hlavě zůstalo) by především víc pomohlo, kdybys míň rejpal a machroval a víc konstruktivně pomohl - třeba se zeptal "hele, tomuhle zápisu nerozumím, co jsi jim chtěl říct?"

Každopádně se ale shodnem, že pokud má někdo v plánu se naučit CT, rozhodně by se to neměl učit z mých pindů tady. Myslíš, že by pomohlo, kdybych si to dal do disclaimeru pod každej příspěvek? ;)

1768
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 02:12:41 »
Ale už dobrou, zboji.

Je to škoda, že u tebe není poznat, co myslíš jako vážnou výhradu a kdy jenom zbojuješ, kdyby to tak nebylo, mohlo z tebe mít lidstvo větší užitek.

Ale i tak tě mám rád, seš takovej pičus urejpanej, jak si na to člověk zvykne, začne to být sympatický.

1769
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 02:10:25 »
To netuším, nevím totiž, co chceš říct.
D

1770
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 21. 04. 2018, 02:02:10 »
Tohle fakt nemá smysl, je-li C kategorie, tak F(C) nedává smysl a i kdyby, tak F nemůže být funktor.
Fakt tě nechápu.

Let C and D be categories. A functor F from C to D is a mapping that

* associates to each object X in C an object F(X) in D
* associates to each morphism  f: X -> Y in C a morphism F(f): F(X) -> F(Y)

zapisuje se F: C -> D

Vadí ti přesně co? Ten zápis F(C)? Tak sorry, to se asi nepoužívá, no, ok. Jak jsem to měl zapsat? "D takové, že F: C -> D"? To jsi tomu vážně nerozuměl, nebo to je jenom taková zbojovština?

Stran: 1 ... 116 117 [118] 119 120 ... 618