Já bych snad jen dodal, že obrovská síla Pythonu je v tom, že je multiparadigmatický, a umožňuje volit objektový, funkcionánlní, či procedurální přístup pro řešení konkrétních problémů. A myslím si že dobrého programátora nedělá to, že dokáže všechno naprogramovat v jednom oblíbeném paradigmatu, ale že dokáže volit to nejelegantnější řešení pro daný problém.
Není problém pokud nevím, jak něco vyřešit. Problém je, když znám jen jedno řešení. Honza 2015-02-11 10:08 GMT+01:00 Vladimir Macek <ma...@sandbox.cz>: > On 10.2.2015 20:50, Honza Král wrote: > > 2015-02-10 20:36 GMT+01:00 Radek Holý <radekholypub...@gmail.com>: > >> V Pythonu dělám skoro 9 let a pořád platí, že kdykoliv někde > >> narazím na "reduce", "map" apod. tak mě to vždy zdrží a chvíli mi > >> trvá, než pochopím o co jde. List comprehensions se mi čtou > >> snadněji - přirozeněji. Nehledě na to, že ty funkcionální > >> záležitosti jsou skoro vždy spojené s deklarací jinak zbytečných > >> funkcí se složitým významem, nebo ještě komplikovanějšími lambda > >> funkcemi. Každopádně je to prostě otázku vkusu/zvyku... Jedním z > >> problémů může pro mě být ta prefixová notace. Vypadá to jako Lisp > >> :-) > > Doufám, že se shodneme, že to je věc osobních preferencí a nebudeme si to > navzájem vyčítat. :-) Zajisté můžu považovat za elegantnější vytáhnout > filtrační nebo transformační logiku do extra funkce s komentáři a pak jí > předhodit do filter/map než to patlat do třířádkového C-G. Podotýkám pro > jistotu znovu, že používám jak filter/map + zřídka reduce, tak C-G, vždy > podle svého citu pro vhodnost. Snažím se dodržovat Zen. > > Kdykoli píšu \, trošku uvnitř umřu. > > > > Vidim to uplne stejne, proto jsem byl prekvapen kdyz tady slysim > > zastance filter/map/... Ja osobne se k nim skutecne uchyluji jen > > obcas kvuli vykonu a v situaci kdy je naprosto jasne, co to bude > > delat. > > To poslední negrokuju. :-) Jasné je snad v Pythonu vše, proto ho máme rádi, > ne? :-) > > > >> Ještě mě zarazilo to "stáhneme 10 URL". S tím mám vždy osobní > >> problém. Jakmile někdo volá "map", aniž by ho zajímala návratová > >> hodnota volané funkce, považuji to za chybu. Nehledě na to, že v > >> Pythonu 3 "map" vrací iterátor, takže se kvůli tomu ještě typicky > >> "map" obaluje do "list"... V těchto případech vždy preferuji > >> klasický "for" cyklus. Ale opět je to jen můj názor. > > Dovoluji si i zde spíše nesouhlasit, zejména se slovem typicky. > "Přetypování" tohoto typu snad používáme až tehdy, kdy je to nutné, ne? > Pokud někde dostanu iterátor, je hromada případů, kdy se elegantně a > efektivně použije přímo. > > > > Naprosty souhlas, parkrat jsem videl volani map ci list > > comprehension bez zajmu o vysledek a take s tim mam problem - je to > > plytvani (zbytecne se alokuje list) a je to hure citelne. > > Nedochází mi, kde jste vzali, že spojuju příklad se stažením 10 URL s > map(), psal jsem zrovna, že jsem na tom příkladu ilustroval C-G. Ale i na > map() se to dá použít > > map(urllib.urlopen, ('http://www.seznam.cz', 'http://google.com', > 'http://ibm.com')) > > Též nerozumím tomu, jak jste vyvodili, že se jak v tomto případu, tak v tom > mnou prve zmíněném s C-G nezajímám o návratovou hodnotu. > > Jednak jsem to zmiňoval jako rychlou ukázku C-G jakožto konstruktu pro > studenty (kde se navc netvoří profesionální kód), za druhé mohu dostat > všechny potřebné informace vč. stavových a za třetí... kam se vám poděl > EAFP (https://docs.python.org/2/glossary.html)? > > > > Mimochodem v python3 uz reduce ani neni builtin (byl presunuty do > > functools) a i Guido to vidi obdobne: > > http://www.artima.com/weblogs/viewpost.jsp?thread=98196 > > S tím souhlasím, nic proti. Sám jsem psal, že ji používám zřídka. > > Děkuji za diskusi, štvete mě jen malinko. :-) > > Vl. > > _______________________________________________ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz >
_______________________________________________ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz