1816
Vývoj / Re:Nový objev ve funkcionálním programování
« kdy: 19. 04. 2018, 18:41:33 »Že se v té funkci z příkladu žádná hodnota neliftuje.Můžu poprosit o definici toho, čemu říkáte "hodnota se liftuje"? Přesnou, matematickou.
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.
Že se v té funkci z příkladu žádná hodnota neliftuje.Můžu poprosit o definici toho, čemu říkáte "hodnota se liftuje"? Přesnou, matematickou.
Takže vy nemyslíte "lift", ale výraz "hodnota je liftována". Ok. Co je tam teda za chybu?Dobře. Žádný "lift" tam není, na tom se určitě shodneme.Kdo psal tohle?
A v čem je teda ta moje chyba? Psal jsem, že tam nějaký lift je?CitaceAni tohle jste nechytil. Neřekl jsem, že bind liftuje, ale že v rámci fce, kterou přijímá jako parametr, se "běžná hodnota" "liftuje" (pro experty: mikturuje frkodrťákem) do monády.
Pak je tedy asi lepší je nepsat, aby nebylo z čeho vybíratChceme se teda bavit jako dospělí lidi, nebo ne?
Dobře. Žádný "lift" tam není, na tom se určitě shodneme.
A v čem je teda ta moje chyba? Psal jsem, že tam nějaký lift je? Můžu poprosit o odkaz na ten příspěvek? Nebo je ta domnělá chyba jinde?
Problém asi je, že nám to připadá tak triviální, že se neobtěžujeme s polopatickým rozepisováním.Výborně, tak přece jenom se nakonec snad dostaneme k normální diskusi, super! Možná by ještě pomohlo zmírnit ten nadřazený tón (nám to přijde triviální, ale ty to nedáváš) a dostaneme se skutečně na rovinu diskuse dospělých lidí.
Ale dobře, například u seznamů, kde je bind jasně definovaný, mu lze dát funkci (λx) [x, x*2] a v tomto výrazu žádný “lift” není, tedy aspoň v žádném běžném významu.Dobře. Žádný "lift" tam není, na tom se určitě shodneme.
Někdy je lepší v "krátkém příspěvku" přiznat evidentní chybuTo by ovšem ta "evidentní chyba" musela být prvně dokázána. Ten dlouhý příspěvek jsem napsal právě proto, abyste mi mohli ukázat, v čem ta údajná chyba má spočívat. Ne, raději si zase vybereme nějakou totální kokotinu a napíšeme zapár příspěvků o tom, jak to Prýmek nechápe... OMG!
Řetězit se dají funkce, hodnoty ne (ani monadické).Tak jo, tak jestli si tady ošoupávám klávesnici na tak dlouhej příspěvek jenom proto, aby sis našel další záminku k nesmyslnýmu rýpání do věci, která je naprosto srozumitelná, tak si to tady chlapci užijte. Přeju hodně štěstí v tom propagování funkcionálního programování.
Mohu-li ve vší skromnosti radit, ignorujte jeho ovčáčkovský styl (=směs urážek, pseudoironie a demagogie), třeba ho to pak přestane bavit.Není sebemenší problém dokázat, že jsem cokoli řekl špatně. Rád to uznám, když dostanu jasný nezvratný argument.
Třeba si myslí, že “liftovat” znamená prostě vytvořit onu monadickou hodnotu jakýmikoliv prostředky, bez returnu.Je to debil, podle mě si myslí, že liftovat znamená lízat vanilkovou zmrzlinu těhotným komárem.
bind neliftuje, return liftujeAni tohle jste nechytil. Neřekl jsem, že bind liftuje, ale že v rámci fce, kterou přijímá jako parametr, se "běžná hodnota" "liftuje" (pro experty: mikturuje frkodrťákem) do monády.
ta se nehádejte a používejte ho správně https://wiki.haskell.org/LiftingAha, takže tohle je špatně: https://wiki.haskell.org/Lifting_pattern
Tak to je hodně smutné, neboť jde o něco úplně jiného.Smutné je, když někdo dělá machra a neumí porozumět jednoduchému sdělení.
Ten odkaz je o negenerických funkcích, v otázce je výslovně uvedeno “generic function” (v C++ něco jako “template<typename T> A<T> aFunction(...)”),Když už jsme u toho, ta otázka je především na rozdíl mezi MATEMATICKÝM pojmem "funkce" a MATEMATICKÝM pojmem "morfismus". S programováním ta otázka vůbec nesouvisí.
jakpak by asi byla zodpovězena zdeAsi dost podobně jako tahle: https://math.stackexchange.com/questions/2000595/how-is-a-morphism-different-from-a-function
Ta formulace je špatně v tom, že ona funkce nějakou “obyčejnou” hodnotu liftovat může, ale nemusí.To je striktně vzato pravda. Může třeba vracet konstantu, že. A přesně tohle potřebuje začátečník vědět, protože to je typické použití.

V obecném případě tato funkce vrací monádu, která liftováním vzniknout nemůže (jednoduchým příklad jsou seznamy), jinak by ostatně monády k ničemu nebyly, každá by byla jen “zabalená obyčejná hodnota.”Aha, takže opět se budeme hádat o význam slova "liftovat"
Že já debil jsem nenapsal "vezme tu hodnotu a zmikturuje ji frkodrťákem do monády", to by asi bylo srozumitelnější nebo co.asi zase budu za onanistu, ale "pointless" je něco jiného, než IMHO vhodnější "wrong"Nene, tohle není onanismus. Ten chlapík tam fakt říká něco jinýho. Tohle není přiznání, že to má blbě.
function f1(value) {
return new Promise(function(resolve, reject) {
setTimeout(function() {
value += 'bar'
alert(value)
resolve(value)
}, 1000)
})
}
function f2(value) {
return new Promise(function(resolve, reject) {
setTimeout(function() {
value += 'baz'
alert(value)
resolve(value)
}, 1000)
})
}
Promise.resolve('foo')
.then(f1)
.then(f2)
I "ten lift" v CT je tak obecny, ze muze znamenat leccos, tak netvrdte, ze ma jenom jeden vyznam (v kategorii Hask)....a vubec, presne tyhle ty pindy imho lidi od CT odrazuji - protoze jakmile se na neco praktickeho ohledne CT zeptaji, tak se to zvrhne v pseudodebatu o ezoterickych (z jejich pohledu) blbostech...