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 ... 266 267 [268] 269 270 ... 618
4006
Studium a uplatnění / Re:Funkcionální programátor
« kdy: 07. 07. 2015, 22:07:57 »
Když můžu v Haskellu napsat kód, který vypadá a chová se úplně stejně jako kód napsaný v Cčku, tak Haskell prostě není pure.
No, to je dost zvláštní tvrzení. Představ si, že bys měl main funkci, která by vracela "seznam IO akcí" - načti tohle, vraž to sem, zapiš tohle tam. Výsledkem main funkce by byl jenom tenhle seznam. což je statická abstraktní struktura, kterou jistě můžeš generovat čistě.

...no a tuhle strukturu prostě vezmeš a v runtimu uděláš ty akce. Co je na tom teda nečistého a podle jaké definice?

No a tohle je v podstatě přesně to, co IO monáda dělá.

4007
Studium a uplatnění / Re:Funkcionální programátor
« kdy: 07. 07. 2015, 21:46:59 »
Čumil tu definici moc hezky napsal.
Myslíš tu, kterou Haskell splňuje?

http://forum.root.cz/index.php?topic=11417.msg134755#msg134755

4008
Studium a uplatnění / Re:Funkcionální programátor
« kdy: 07. 07. 2015, 21:42:17 »
neinteraktivní není neužitečný :)
No jo, jenže podle téhle definice čistoty by nešel ani batch processing :)

4009
Studium a uplatnění / Re:Funkcionální programátor
« kdy: 07. 07. 2015, 21:09:02 »
vykazují známky nečistoty
Podle jaké definice? Musí to být definice absurdní, protože pokud IO jako takové, samo o sobě znamená nečistotu, potom čistý může být jenom program bez IO - čili program, který nic neumí vyprodukovat, nic neumí vypočítat... Ok, může být, akorát taková čistota pak asi není něco, o co by kdokoli stál...

4010
nejuzitecnejsi je asi judaismus
To mi připomíná, jak jakýsi rabín říkal, že kdyby se Einstein nepustil do té fyziky, mohl z něj být parádní talmudista. Škoda...

4011
Studium a uplatnění / Re:Funkcionální programátor
« kdy: 07. 07. 2015, 09:55:12 »
To závisí od toho, či nám tá Cantorova alebo Riemannova funkcia naozaj pripadá divná alebo nie. Ako ukazuje diskusia v tomto vlákne (ale aj na iných fórach), tak čistota Haskellu jednoznačne mnohým ľuďom divná pripadá. Čím, pravdaže, nevylučujem, že niekomu by nemusel pripadať divný ani funkcionálne čistý jazyk "obsahujúci C-čko".
Nebylo by lepší opustit ty mlhavé analogie a napsat to polopaticky? V čem Haskell není čistý? Zatím jsme narazili jenom na to, že forknutí IO je nečisté (což je jasný z principu). Něco dál? A v jakém smyslu by měl být čistý "funkcionální jazyk obsahující céčko"? Jak by měl vypadat? V čem by se od Haskellu lišil?

4012
Studium a uplatnění / Re:Funkcionální programátor
« kdy: 06. 07. 2015, 22:04:17 »
Nepřekračoval by si její (ideovou) zodpovědnost?
Myslím že ne, protože stačí k tomu forku prostě nedát nástroj. Ale nejsem haskellista, v tomhle se můžu mýlit.

4013
Studium a uplatnění / Re:Funkcionální programátor
« kdy: 06. 07. 2015, 21:52:29 »
Vtip je v tom, že nemůžeš.
Proč?

4014
Studium a uplatnění / Re:Funkcionální programátor
« kdy: 06. 07. 2015, 21:46:12 »
Zatímco u Unique typingu to ideově vadí.
No a tohle omezení můžeš úplně klidně k monadickému řešení přidat a máš totéž (imho). To je ta pointa. Vezmeš Linux, vyhážeš z něj drivery pro síťovky a máš rázem SuperBezpečnýNehacknutelnýSystém(R), daleko lepší než Linux!

4015
Studium a uplatnění / Re:Funkcionální programátor
« kdy: 06. 07. 2015, 21:19:45 »
Protože přece o přesně o tomhle to bylo. Ty sám jsi tuším řekl, že napsat to čistě bez vláken je triviální.
Nebylo. Bylo to o tom, že Clean to má údajně uděláno dobře. Akorátže jenom pro jedno vlákno. Což je podmínka, za které jsou monády úplně stejně dobré.

Pokud ti monády zajišťují pořadí výpočtu, ale jen někdy, tak je to zajištění dost hloupé, to se na mě nezlob.
No zajišťují ti pořadí výpočtu v jednom vlákně - vytvářejí ti prostě možnost kousek kódu psát "imperativně" (do block). Pokud chceš nějakou synchronizaci mezi vlákny, je na to potřeba jiný nástroj. Na tom mi nepřijde nic polovičatého. Monády prostě dělají to, co dělat mají.

4016
Studium a uplatnění / Re:Funkcionální programátor
« kdy: 06. 07. 2015, 20:59:15 »
Imho to máš moc dlouhý. IOMonády nejsou čisté, protože umožňují RC. Přesněji, protože je nejde použít tak, aby k němu nemohlo dojít.
Nejde o to, že Haskell forkování IO, ale o to, že nemá možnost, jak zabránit v IO race condition (při vícevláknovém běhu).

No, možná bych to popsal takto: unsafeIO mi jasně říká, že se bude dít nějaká divočina. Použitím více vláken mi nijak nenaznačuje - bacha, IOMonády nebudou fungovat korektně.
To je pořád totéž: monády umožňují RC jenom při běhu ve více vláknech. Údajné řešení běh více vláken neumožňuje. Není tedy o nic lepší než monády.

Což ale u více vláken neplatí. Nebo se pletu?
Proč by to neplatilo? Monády jsou prostě způsob, jak lazy jazyk donutit dodržet nějaké pořadí vyhodnocování.

Ve více vláknech máš pak samozřejmě problém jejich prolínání, takže by se případně hodil i nějaký další mechanismus pro řazení těch vláken mezi sebou. To ale ten čumilem vyzdvihovaný Clean taky nedělá.

4017
Studium a uplatnění / Re:Funkcionální programátor
« kdy: 06. 07. 2015, 20:39:26 »
Já ho teda pochopil jinak. Jemu IMHO nešlo o to, že tam je nějaké forknutí  IO, nebo, že to jde obejít,
Začátek je tady: http://forum.root.cz/index.php?topic=11417.msg134386#msg134386 IO monáda není čistá, protože čisté IO neumožňuje race condition. A IO kdekoli (nejen v Haskellu) umožňuje RC jenom při vícevláknovém běhu. Čili IO v Haskellu není čisté právě proto, že umožňuje fork. Mně to přijde jako jednoduchý sylogismus ;)

ale o to, že monády z principu neřeší problém. Jedná se o nevhodné použití nástroje na problém vstupu a výstupu. Vždyť na IO se monáda používá jen proto, že umožňuje určit pořadí vyhodnocování. To je dost polovičaté, nemyslíš?
Vůbec ne, protože řazení funkcí ve správném pořadí je to jediné, co u lazy jazyka pro IO potřebuješ. Nebýt línosti, monády bys vůbec nepotřeboval, protože referenční transparentnost máš zadarmo zaručenou tím, že funkci voláš pokaždé s jiným stavem světa, čili defacto volání funkce můžeš výslednou hodnotou nahradit jenom na tom jednom konkrétním místě.

4018
Studium a uplatnění / Re:Funkcionální programátor
« kdy: 06. 07. 2015, 19:46:12 »
To už radši nasadím libovolný z dnešních jazyků, a budu mít to samé, a rychlejší.
To je naprosto v pořádku. Pokud ti nějaký přístup nevyhovuje, použij ten, který ti vyhovuje, to je naprosto správně. Rychlejší to být nemusí právě v případě, že budeš chtít masivně paralelizovat. Tam s OOP dost brzo narazíš.

Možno by pomohlo, keby si vysvetlil, v čom presne vidíš to zahmlievanie.
Myslím, že nemá smysl rozebírat do kdovíjaké hloubky jednu alegorii, která v jednom aspektu může sedět a ve spoustě jiných být úplně mimo...

4019
Studium a uplatnění / Re:Funkcionální programátor
« kdy: 06. 07. 2015, 19:41:49 »
Napřed se objevil čumil, a začal vcelku logicky uvádět věci na pravou míru. [...] Závěr je ten, že čumil říkal že Haskell není čistý [...] ostatní zde tvrdili že Haskell je čistý
To jsi to špatně pochopil. Haskell umožňuje operaci, která může potenciálně způsobovat problémy (forknutí IO). Čumil řekl, že to je blbý a že lepší je řešení s UT. Jenže prakticky úplně stejného řešení dosáhneš s Haskellem pokud forknutí IO nepoužiješ. A naopak - pokud bys do jakéhokoli jazyka možnost mít víc IO vláken přidal, dostaneš se přesně tam, kde je Haskell. Proto je ta čumilova výhrada vůči Haskellu divná. Nikdo z něj nedělal blbce, ale těžko jazyku vyčítat, že má cosi navíc, co případně může způsobit problémy, a dávat za příklad jazyk, který tohle cosi navíc nemá a proto nemá ani ty problémy.

Jak jsem už tady kdesi psal, je to jako adorovat jako superbezpečný OS, který nepodporuje komunikaci po síti, a říkat, že to je daleko lepší než OS, který komunikaci po síti podporuje (a tím se vystavuje nebezpečí).

byly na mne moc složité řekl bych, podobně jako některé vysvětlení na internetu proč je Haskell čistý. [...] Citím se neskutečně otráveně a unaveně, myslím, že přesně to je jeden z důvodů proč se funkcionální jazyky nepoužívají,
No však tohle je taková "metadebata" o aspektech, který pro samotný programování nijak moc rozumět nemusíš. Když bys neměl moc zkušeností s OOP a přichomítl se k nějaké debatě třeba o těch záměrných nedokonalostech typového systému Swiftu, tak bys tomu taky nerozuměl. To přece není důvod nad tím úplně zlomit hůl...

A na závěr jsem se zde dověděl, že vlastně IO monáda je pro GUI nevýhodná, a že pro to je FRP o kterém nazačátku mluvil čumil.
No ale FRP mu nikdo nevyvracel, to může být dobré řešení, akorát je otázka, jakého problému a jak přesně použité. To už čumil nerozebral. Jenom tak plácnout "FRP" a tvářit se, že jsem tím něco vyřešil, žádné řešení ničeho není :) A mimochodem, FRP jde samozřejmě dělat i v Haskellu, takže to není nic proti němu :)

K tomu všemu jsem se dozvěděl že vlastně FRP je takřka to samé co IO monáda.
Ne, tady byla pointa jiná: pokud chceš mít čistý jazyk a zároveň ovlivňovat okolní svět, tak vždycky skončíš u toho, že budeš mít nějaký runtime, který bude spouštět nějaký předpis, který mu tím čistým způsobem vygeneruješ. V tomhle je to stejné, jinak se to samozřejmě v různých praktických aspektech může lišit. A nevím o tom, že by to šlo dělat nějak jinak, takže nemá smysl tímhle povyšovat jedno řešení nad jiné.

4020
Studium a uplatnění / Re:Funkcionální programátor
« kdy: 06. 07. 2015, 15:43:40 »
No tak si namiesto C/CPP predstav C/FPP, kde FPP je čisto funkcionálny predprocesor, trebárs doplnenie CPP o nejaký SK-kalkulus: bude to čisto funkcionálne aj turingovsky úplné. Nemusí to byť moc praktické - na riešenie praktických vecí z neslniečkového sveta tu predsa máme abstraktný typ C.  ;D
Když si představím něco jiného, tak pro to bude i něco jiného platit, to dá rozum :) Je to jako bys řekl, že Eiffelovka je zmrzlina a na námitku, že je z kovu a nedá se moc lízat bys řekl "tak si představ Eiffelovku z mraženého mlíka" :)

Podle mě tohle prostě debatu nijak nevyjasňuje, spíš naopak. Téma je už tak složitý a plný různých nuancí, tak by bylo lepší ho nezamlžovat...

Stran: 1 ... 266 267 [268] 269 270 ... 618