[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