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 ... 183 184 [185] 186 187 ... 618
2761
Vývoj / Re:Python -> volání odkazem nebo hodnotou?
« kdy: 04. 10. 2016, 11:23:34 »
Ahoj,
V jave to funguje uplne stejne, proste si predstav, ze lst[1:] je syntakticky cukr pro volani funkce, ktera vrati novou instanci listu (nebo tuple) s pozadovanymi prvky.
To neni podstata toho problemu, co OP popisuje. Podstatou je, ze nemuze zmenit lst tak, aby se to projevilo vne funkce.

Parametry se proste v pythonu predavaji hodnotou, pricemz hodnotou je bud adresa objektu nebo primo vlastni skalar (aka "call by assignment").

2762
Vývoj / Re:Python -> volání odkazem nebo hodnotou?
« kdy: 04. 10. 2016, 11:19:50 »
Pro OP:

Muzes si to predstavit tak, ze do funkce se predava ukazatel na objekt:

Kód: [Vybrat]
void f(Objekt* o) {
  o.a = 1;   // muzes zmenit stav objektu (zmenit objekt "uvnitr")
  o = o2;    // ale nemuzes ho vymenit za jiny (zmena se ti neprojevi vne funkce)
}
...cili si musis uvedomit, co predavas a jak s tim operujes - vysledek se totiz podle toho lisi.

s pythonem už nějakou dobu nedělám, ale řekl bych, že něco jako int* a = ...; *a = 10; v pythonu prostě napsat nejde, vždycky jen a = ...
Takhle naprimo ne. Ale pokud toho mermomoci chces dosahnout, staci pouzit drobny hack:

Kód: [Vybrat]
>>> def f(l):
...   l[0] = 1
...
>>> l = [2]
>>> f(l)
>>> l
[1]

2763
Tak skutecne nebudu utracet miliony protoze ty jsou ulozene ve firme ktera zamestnava tu manzelku za nejakych treba ~100k mesicne a vsichni si zijem sakra dobre a nikdo na me nemuze. Zkratka takova renta.
Kdyby to bylo tak jednoduchý, tak by finanční policie neměla do čeho píchnout.

2764
Policii to zajimat sice muze, ale to je asi tak vse co muze udelat.
A to jako proč? Když už nic, tak: http://zakony.centrum.cz/trestni-zakonik/cast-2-hlava-5-paragraf-216

To je jako vyzivne na deti. Na to se da jit stejne - nic nemit oficialne.
Ne, to opravdu není. Vydělat si měsíčně nějakých pár tisíc nějak načerno/našedo a koupit si za to o deset palců větší televizi je úplně něco jinýho, než utratit desítky milionů, které jsem očividně legálně získat nemohl.

2765
Vsechen majetek davno prevedl na nekoho jineho nebo "prodal". Do prace chodit nebude. Dostane podporu v nezamestnanosti a pozdeji minimum. Soud mu vymeri splatkovy kalendar a jelikoz nema prijem, tak bude asi do smrti platit minimum, ktere ale pujde z podpory v nezamestnanosti nebo z zivotniho minima. Takze stat zpatky neuvidi nic a jemu to muze bejt jedno. Akorat tech 6 vostrejch, to je horsi. Ale za 3 ho pustej a pujde na lehkou. Takze pokud si za to sekl bokem nejake desetimilouse, tak se to mozna vyplatilo.
A k čemu mu ty milouše bokem budou? Když si přijede pro podporu ve Ferrari s havajským věncem kolem krku, tak to dost pravděpodobně začne policii zajímat.

2766
Sítě / Re:Domácí síť do novostavby
« kdy: 30. 09. 2016, 19:29:30 »
to sa clovek zas nasmeje. z obycajneho nakonfigurovania siete sa tu robi raketove inzinierstvo..
Nerobí. Ale kedže se tazatel píta takto, tak tomu azda privela nerozumie. A ťažko može očakávať, že mu tu bude hocikto robiť online kúrz dost dobrý na to, aby sám dokázal zvážit všetky pre a proti roznych možnych konfigurácií...

alebo stary komp a si hotovy za 200 eur
...a co jsi ušetril, to niekolkonásobne zaplatíš za prúd.

2767
Sítě / Re:Domácí síť do novostavby
« kdy: 30. 09. 2016, 16:11:02 »
v pripade ze ma to bavi a rad by som sa naucil popri tom ako sa to kachlickuje atd a mam dost casu tak preco by som si ju neokachlickoval sam?
Pokud by tazatele bavily sítě a chtěl by se je naučit, tak se neptá, co si má dát do baráku, ale ptal by se třeba, jak funguje VLAN tagging.

Na takhle obecně položenou otázku neexistuje správná odpověď. Musí se prostě sepsat požadavky a podle (aspoň jakžtakž) odborného posouzení a především zkušeností sepsat, koupit, nakonfigurovat a zapojit hardware. To nikdo zadarmo dělat nebude a laik, jakkoli poučený, zvládne tak maximálně polovinu z toho (zapojení, základní konfigurace).

2768
Server / Re:Zdrojovy kod email
« kdy: 29. 09. 2016, 10:27:36 »

2769
Vývoj / Re:Map vs. FlatMap
« kdy: 28. 09. 2016, 22:30:00 »
Usekl jsi můj argument v půlce, když ti ho přeložím celý do X Y, tak: Scalisti X ve scale podobně jako haskellisti Y v haskellu, protože používají X ve scale v mnoha stejných případech jako haskellisti Y v haskellu, syntaktický cukr pro X ve scale (for comprehension) je velice podobný syntaktickému cukru pro Y v haskellu (do notation).
X a Y byly jiné věci než rozdíl Scala vs. Haskell, ale nešť :)

Scalista to má podobné, asi se k nim dostane později, protože je dost jiných featur, kterými se musí prokousat, ale pokud neustrne ve vývoji, tak ho to nakonec dožene. Když pak začne používat knihovny scalaz nebo cats, dostane do ruky víceméně všechny často používané struktury z haskellu, a důkladnější porozumění flatMapu se stane nezbytné.
Ok, tak jestli je to tak, tak to je pro mě velmi dobrá a potěšující zpráva.

Jenže pak ty zákony nefungují (pokud stejná hodnota znamená, že jednu stranu mohu nahradit tou druhou, aniž by se změnilo chování programu
No to bude asi tím, že undefined a seq jsou dost speciální případy... Ale do diskuse o detailech se pouštět nebudu, Haskell znám spíš povrchně na to, abych se pouštěl do takových špeků :)

2770
Vývoj / Re:Map vs. FlatMap
« kdy: 28. 09. 2016, 21:53:47 »
Otázkou je, co symbol ≡ přesně znamená (zejména, jak se ten symbol chová se seq)?
Znamená, že výraz na pravé a levé straně má vždy stejnou hodnotu.

2771
Vývoj / Re:Map vs. FlatMap
« kdy: 28. 09. 2016, 21:13:13 »
podle mě většina scalistů chápe flatMap jako bind (i když třeba název bind neznají), už třeba pro to, že for-comprehension funguje všude kde je definovaný flatMap
Nějak nechápu strukturu tohodle argumentu.

Scalisti chápou, že X je vlastně Y, protože X je definované na kde čem?

Bind (v tom haskellovském monadickém smyslu) je definovaný tím, že splňuje monad laws:
Kód: [Vybrat]
Left identity: return a >>= f ≡ f a

Right identity: m >>= return ≡ m

Associativity: (m >>= f) >>= g ≡ m >>= (\x -> f x >>= g)
To by mě teda zajímalo, kolik scalistů si s tímhle láme hlavu...

2772
Vývoj / Re:Map vs. FlatMap
« kdy: 28. 09. 2016, 16:35:18 »
Tak třeba flatMap ve Swiftu je i u Optional a chová se jako >>= (je to flatten.map). Java to má myslím taky tak.
Scala určitě. Ale to je tím, že Optional je intuitivně seznam o 0<=n<=1 prvcích. Docela bych trval na tom, že "každý" programátor chápe flatMap jako mapování přes nějakou kolekci a ne jako úplně obecný bind - tj. "zřetězení v monadickém typu".

Můžeš se zkusit průměrného programátora zeptat, jestli když v javascriptu asynchronní fci na načítání něčeho přes HTTP vracející future předává url, jestli je to podle něj flatMap. Vsadím boty, že na tebe bude koukat jako na blázna ;)

Ale asi nemá smysl se o tom hádat, každý si může tu operaci pojmenovat, jak chce.
Souhlas. Ale běžný programátor podle mě ten obecný rozměr nevidí tak dobře jako ty. Nebo spíš vůbec. Takže když to tak budeš nazývat, spíš to povede k nedorozumění než naopak.

2773
Vývoj / Re:Map vs. FlatMap
« kdy: 28. 09. 2016, 15:42:35 »
Ne tak úplně, bind je flatMap, jsou to jen různá pojmenování stejné operace (stejně jako join a flatten).
Spíš flatMap je speciální případ bindu, ne?

Pod flatMap myslím každej chápe operaci nad seznamy a nic jinýho.

2774
Vývoj / Re:Map vs. FlatMap
« kdy: 28. 09. 2016, 14:30:54 »
Samozřejmě to neznamená, že by si nějaká obecná fce nad monádami vycucala z prstu, že když dostane dva listy, tak je má zřetězit, to jí samozřejmě musím nějak říct, že má udělat zrovna toto :)
Ještě dodatek k tomuhle: myslím, že není od věci si uvědomit, že "být monádou" je jenom zkratka pro to, že mám nějaký substrát a nad ním nějaké operace, které splňují nějaká pravidla. Je dost pravděpodobný (teď z hlavy si nevybavím příklad a nechce se mi to řešit), že List může být monádou "různými způsoby" - ty operace si nadefinuju různě, ale ve všech případech jsou splněny "monadické zákony". Ne ve všech těhle různých případech musí figurovat zřetězení.

2775
Vývoj / Re:Map vs. FlatMap
« kdy: 28. 09. 2016, 14:15:01 »
to se mi nějak nezdá, jak se pomocí monadického rozhraní poskládá (např.) seznam?

Pokud jsem pochopil otazku, tak by mohlo vysvetlit tohle:
https://en.wikibooks.org/wiki/Haskell/Understanding_monads/List
možná tam je, ale já ji nevidim, možná jsem se v tom trošku ztratil
otázka by mohla být jak pomocí (>>=) a return (když už teda chcete haskell) udělám z [1] a [2] hodnotu [1,2]
Myslím, že zboj myslel spíš to, že pomocí bindu můžu hezky "simulovat" map i flatMap:

map:
Kód: [Vybrat]
Prelude> [1,2,3] >>= (\x -> [x*2])
[2,4,6]

flatMap:
Kód: [Vybrat]
Prelude> [1,2,3] >>= (\x -> [x,x])
[1,1,2,2,3,3]

filter:
Kód: [Vybrat]
Prelude> [1,2,3] >>= (\x -> if x==1 then [] else [x])
[2,3]

...ale ne naopak, čili bind je "silnější"/"obecnější" koncept.

Samozřejmě to neznamená, že by si nějaká obecná fce nad monádami vycucala z prstu, že když dostane dva listy, tak je má zřetězit, to jí samozřejmě musím nějak říct, že má udělat zrovna toto :)

Stran: 1 ... 183 184 [185] 186 187 ... 618