[python] Buducnost Pythonu: lambda, map, filter
Petr Prikryl
PrikrylP na skil.cz
Pátek Listopad 10 11:56:46 CET 2006
superman
> Roman Miklóš
> > V trede Statické metody v Pythonu
> > (http://www.py.cz/pipermail/python/2006-November/004991.html)
> > superman napisal:
> > > ... map,filter a podobné (což prý v další verzi Pythonu nebude...
>
> [...] Zajímavý je blog Rossuma:
> http://www.artima.com/weblogs/viewpost.jsp?thread=98196
>
> Nedávno jsem od něj četl, že v Pythonu není podmíněné přiřazení,
> ani přiřazení není výrazem, neboť by to příliš připomínalo C. Teď
> píše, že lambda příliš připomíná Lisp, nebo Scheme, tudíž musí ven.
> Já bych doporučoval vůbec s tímto příastupem škrtnout celý Python,
> protože až příliš připomíná programovací jazyk.
O osudu lambda se diskutovalo na comp.lang.python. Osobně jsem
lambda nikdy nepotřeboval. Jakékoliv jeho použití v Pythonu
se podle mě dá jednoduše přepsat bez lambda způsobem, který
je proti lambda přehlednější a srozumitelnější.
Přiřazení jako výraz působí komplikace protože se
v boolovských výrazech může poplést == s =.
Podmíněný výraz je novinkou v Python 2.5.
Python je procedurální a nikoliv funkcionální jazyk.
Z funkcionálních zápisů v něm fungují jen ty věci,
které se dají JEDNODUŠE převést na procedurální postup.
Jiné výhody funkcionálních jazyků zde odpadají (například
automatická paralelizace výpočtu).
Z "The Zen of Python, by Tim Peters" bych k tomu vybral...
Simple is better than complex.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
There should be one-- and preferably only one --obvious way to do it.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Navrhuji rozebrat několik případů, kde se používají
lambda, map, filter, reduce a pohádat se o alternativním
zápisu jinými prostředky jazyka Python ;-)
pepr
Další informace o konferenci Python