Nový objev ve funkcionálním programování

v

Re:Nový objev ve funkcionálním programování
« Odpověď #135 kdy: 20. 04. 2018, 13:51:11 »
E. Moggi má definici liftingu v "An Abstract View of Programming Languages"
Hezké, je tam definice i s kom. diagramem, akorát se v něm “liftuje” dolů :)
mno mi u MonadTrans liftu vždyky přišlo, že by se měl spíš jmenovat sink nebo třeba dive :D


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Nový objev ve funkcionálním programování
« Odpověď #136 kdy: 20. 04. 2018, 13:51:47 »
Anonymovi tohle riziko nehrozi, muze si nadavat komu chce
Jediné nadávky jsi psal ty, navíc nevyprovokované (např. "onanista"), všichni ostatní psali věcně a bez urážek.

v

Re:Nový objev ve funkcionálním programování
« Odpověď #137 kdy: 20. 04. 2018, 13:58:34 »
Na zadnou definici zadny odkaz nikdo nedal. Placnout jenom tak do vetru odkaz https://wiki.haskell.org/Lifting neni zadne podani definice. Uz proto, ze uz z prvniho letmeho pohledu na tu stranku je jasne, ze jsou tam popsany ctyri ruzna (!!!!) pouziti toho pojmu.
fajn, nenapadlo mě, že to vidíte takhle, asi pro to vaše sebevědomé vystupování, pokusím se popsat, proč to jsou čtyři různé inkarnace stejného konceptu (Moggi, viz výše), ale možná až večer

Re:Nový objev ve funkcionálním programování
« Odpověď #138 kdy: 20. 04. 2018, 14:22:32 »
fajn, nenapadlo mě, že to vidíte takhle
No, kdybyste diskutoval korektne, tak vas nic napadat nemusi a na vyzvu "napiste definici" byste napsal definici a bylo by jasno.

, asi pro to vaše sebevědomé vystupování
Dovolím si připomenout, že vy jste do diskuse vstoupil s tím, že tomu nerozumím a mám si to dostudovat. Čili sebevědomí vám zřejmě taky nechybí.

, pokusím se popsat, proč to jsou čtyři různé inkarnace stejného konceptu (Moggi, viz výše), ale možná až večer
Výborně! Jsem velice zvědavý, jak to popíšete.

A myslím, že by diskusi dost pomohlo, kdybyste zároveň s tím už konečně opravdu korektně popsal, proč podle vás ten "callback" z Monády není "inkarnace tohoto konceptu":
Kód: [Vybrat]
(>>=)  :: m a -> (  a -> m b) -> m b

O této funkci jsem se vyjádřil, že "liftuje běžné hodnoty do monády":
Kód: [Vybrat]
a -> m b

k čemuž jste se vyjádřil takto:
kdybyste to věděl, tak byste nenapsal "bind... funkce, která je jeho druhým parametrem musí liftovat "obyčejnou" hodnotu do monády", leda že byste chtěl úmyslně někoho zmást

Zajímá mě teda ze všeho nejvíc vysvětlení, proč tato funkce není "inkarnace tohoto konceptu".

Re:Nový objev ve funkcionálním programování
« Odpověď #139 kdy: 20. 04. 2018, 14:29:49 »
Jo a ještě bych samozřejmě taky potřeboval vysvětlit, jestli je nebo není "inkarnací stejného konceptu" ta definice liftu z Wiki https://en.wikipedia.org/wiki/Lift_(mathematics)


v

Re:Nový objev ve funkcionálním programování
« Odpověď #140 kdy: 20. 04. 2018, 14:30:20 »
fajn, nenapadlo mě, že to vidíte takhle
No, kdybyste diskutoval korektne, tak vas nic napadat nemusi a na vyzvu "napiste definici" byste napsal definici a bylo by jasno.

, asi pro to vaše sebevědomé vystupování
Dovolím si připomenout, že vy jste do diskuse vstoupil s tím, že tomu nerozumím a mám si to dostudovat. Čili sebevědomí vám zřejmě taky nechybí.

, pokusím se popsat, proč to jsou čtyři různé inkarnace stejného konceptu (Moggi, viz výše), ale možná až večer
Výborně! Jsem velice zvědavý, jak to popíšete.

A myslím, že by diskusi dost pomohlo, kdybyste zároveň s tím už konečně opravdu korektně popsal, proč podle vás ten "callback" z Monády není "inkarnace tohoto konceptu":
Kód: [Vybrat]
(>>=)  :: m a -> (  a -> m b) -> m b

O této funkci jsem se vyjádřil, že "liftuje běžné hodnoty do monády":
Kód: [Vybrat]
a -> m b

k čemuž jste se vyjádřil takto:
kdybyste to věděl, tak byste nenapsal "bind... funkce, která je jeho druhým parametrem musí liftovat "obyčejnou" hodnotu do monády", leda že byste chtěl úmyslně někoho zmást

Zajímá mě teda ze všeho nejvíc vysvětlení, proč tato funkce není "inkarnace tohoto konceptu".
protože funkce, která "liftuje" vypadá takhle a -> m a nebo (a -> b) -> (m a -> m b), druhý argument bindu je a -> m b, typy nalevo se prostě opakují napravo (to není definice, ale jedna vlastnost liftu)

Re:Nový objev ve funkcionálním programování
« Odpověď #141 kdy: 20. 04. 2018, 14:31:45 »
protože funkce, která "liftuje" vypadá takhle a -> m a nebo (a -> b) -> (m a -> m b), druhý argument bindu je a -> m b, typy nalevo se prostě opakují napravo (to není definice, ale jedna vlastnost liftu)
Nehrňme se zase do nestrukturované diskuse, já si počkám na ten popis "inkarnace stejného konceptu".

v

Re:Nový objev ve funkcionálním programování
« Odpověď #142 kdy: 20. 04. 2018, 14:33:21 »
protože funkce, která "liftuje" vypadá takhle a -> m a nebo (a -> b) -> (m a -> m b), druhý argument bindu je a -> m b, typy nalevo se prostě opakují napravo (to není definice, ale jedna vlastnost liftu)
Nehrňme se zase do nestrukturované diskuse, já si počkám na ten popis "inkarnace stejného konceptu".
co nechápete na (a -> m a) proti (a -> m b)?

Re:Nový objev ve funkcionálním programování
« Odpověď #143 kdy: 20. 04. 2018, 14:34:06 »
co nechápete na (a -> m a) proti (a -> m b)?
Neřekl jsem, že to nechápu. Řekl jsem, že si počkám na to pořádné vysvětlení.

v

Re:Nový objev ve funkcionálním programování
« Odpověď #144 kdy: 20. 04. 2018, 14:37:48 »
Jo a ještě bych samozřejmě taky potřeboval vysvětlit, jestli je nebo není "inkarnací stejného konceptu" ta definice liftu z Wiki https://en.wikipedia.org/wiki/Lift_(mathematics)
tímhle se zabývat nebudu (vždyť tam není ani jediná citace), Moggi a https://wiki.haskell.org/Lifting bohatě stačí

Re:Nový objev ve funkcionálním programování
« Odpověď #145 kdy: 20. 04. 2018, 14:38:32 »
Nedal, protoze dat nejde.
Mně to přišlo validní. Nicméně tohle mi připomíná našeho profesora z automatů, když jsme řešili regulární jazyky. "Není regulární proto, že neexistuje konečný automat, který ten jazyk akceptuje. A teď neexistuje jako opravdu neexistuje, nebo jej jen neumíte sestavit?"

Čili pokud si jsi tak jistý a po ostatních vyžaduješ přesné definice, tak by se to možná lépe vyřešilo, kdybys toto velmi silné tvrzení podložil matematickým důkazem. :) (a to nerýpu, jen poukazuji opět na tu nevyrovnanost diskuse... problém je, že se tady nebavíme o malé násobilce... :) )


Na zadnou definici zadny odkaz nikdo nedal. Placnout jenom tak do vetru odkaz https://wiki.haskell.org/Lifting neni zadne podani definice. Uz proto, ze uz z prvniho letmeho pohledu na tu stranku je jasne, ze jsou tam popsany ctyri ruzna (!!!!) pouziti toho pojmu. Jiste, vsechna ta pouziti maji neco spolecneho, ale o tom to prave je - kdyby panove diskutovali korektne, museli by minimalne nejak verohodne ukazat, ze to moje pouziti toho pojmu je uplne jine nez tyhle ctyri.

Coz ovsem nemuzou, protoze to ... nejde.


To stejné. :) Možná bych si přečetl znova příspěvky od @Idris.


Nevim, co je na tom zcestneho. Pokud budu zidli rikat "stul" a nekdo me bude chtit opravit, ze to slovo pouzivam blbe, tak proste musi rict "Hele, Mirdo, slovo "stul" se pouziva pro predmety ktere ...".

...anebo se tomu muze tricet prispevku vyhybat a misto toho hyrit radami, abych si to dostudoval. Taky cesta.

Dokázat, že tvrzení je nesprávné ještě neimplikuje povinnost poskytnout tvrzení správné. Tedy jinak, pokud budu mít algoritmus na počítání XY a někdo bude tvrdit, že je korektní. Tak pokud mu toto tvrzení vyvrátím protipříkladem, tak jsme s tím hotovi. Nemám žádnou povinnost mu naopak vymyslet/zadefinovat/ukázat korektní algoritmus i s validním důkazem korektnosti. Což je to, o co se tu snažíš vůči ostatním (minimálně na mě to tak působí). A na tento způsob uvažování bych si opravdu dával pozor, protože vede opravdu špatným směrem.

Nerekl jsem, ze jsem neco vic. Rekl jsem, ze pro anonyma je jednodussi diskutovat nekorektne nez pro ne-anonyma. Napr. proto, ze kdyz tady ja urazim Cikadu pod svym jmenem, tak se mi taky muze zitra stat, ze mi nekdo zazvoni u dveri a da mi jednu poradnou do nosu. Protoze proste Cikada ma dva metry a desne ji bavi thai box.

Anonymovi tohle riziko nehrozi, muze si nadavat komu chce jak chce a nic z toho pro nej neplyne, zadnou zodpovednost za to neprijima.

Já neřekl, že jsi to řekl. Já napsal, ať se tak přestaneš chovat. Celé to stojí a padá na tom, že diskuze má být vedená slušně a tudíž toto by mělo být irelevantní řešit. Na stranu druhou svět není ideální. Každopádně nesouhlasím s tím, že z toho pro anonyma nic neplyne. Celé je to o tom, že pokud se někdo v diskuzi chová jako hovado, tak jeho názory/příspěvky přestanou být relevantní, protože se tak chová. Ano, může si pak založit nový profil, ale pak "začíná od začátku". Tedy i anonymům jde o jakýsi kredit. :) (viz takový javaman a jiní... prostě tyhle lidi nejde brát vážně, protože se chovali tak, jak se chovali...)

Jinak Cikáda je ten Cikáda (inspirace Sapkowski), dva metry nemá a lidi nebije. ;)

Re:Nový objev ve funkcionálním programování
« Odpověď #146 kdy: 20. 04. 2018, 14:45:46 »
tímhle se zabývat nebudu (vždyť tam není ani jediná citace), Moggi a https://wiki.haskell.org/Lifting bohatě stačí
No ale to se pak budete zabývat nějakým konkrétním použitím toho pojmu.

Pokud chcete tvrdit, že ten pojem používám špatně (tj. moje použití je v rozporu s nějakým územ), pak by bylo záhodno prozkoumat, jak se skutečně ten pojem používá v různých kontextech.

I pokud bysme došli k tomu, že jsem ten pojem použil jinak, než jak ho používá Moggi, tak nerozumím tomu, jak z toho plyne, že jsem ho použil špatně. Myslitelná je minimálně varianta, že jsem ho použil tak, jak ho definuje právě ta Wiki...

Ale jak chcete no. Ať napíšete cokoli, pokud to bude opravdu strukturované a korektní, tak to pořád bude posun oproti pustému "nerozumíte tomu, tak si to nastudujte".

v

Re:Nový objev ve funkcionálním programování
« Odpověď #147 kdy: 20. 04. 2018, 14:51:19 »
Myslitelná je minimálně varianta, že jsem ho použil tak, jak ho definuje právě ta Wiki...
prosím dokažte

Re:Nový objev ve funkcionálním programování
« Odpověď #148 kdy: 20. 04. 2018, 14:54:33 »
Čili pokud si jsi tak jistý a po ostatních vyžaduješ přesné definice, tak by se to možná lépe vyřešilo, kdybys toto velmi silné tvrzení podložil matematickým důkazem. :)
"v" tvrdí, že jsem nějaký pojem použil špatně. Já po něm chci, aby mi vysvětlil, proč si to myslí.

Co myslíš, že bych měl "matematicky dokazovat"? Já nemám potřebu nic dokazovat.

Dokázat, že tvrzení je nesprávné ještě neimplikuje povinnost poskytnout tvrzení správné.
Pokud tvrdím, že někdo používá nějaký pojem nesprávně, není jiný způsob, jak to dokázat, než přednést definici a dokázat, že to použití ji porušuje.

Re:Nový objev ve funkcionálním programování
« Odpověď #149 kdy: 20. 04. 2018, 14:55:06 »
prosím dokažte
Co mám dokázat? Že je to myslitená varianta?