[Python-de] "Funktionalitaet" von Python

Stefan Schwarzer sschwarzer at sschwarzer.net
Thu Aug 29 23:20:34 EDT 2002


Hallo Dinu :-)

Dinu Gherman wrote:
> kann mir jemand die aktuelle Aufregung um die mehr oder 
> weniger vorhandenen funktionalen Eigenschaften von Python
> erklaeren? Guido wollte ganz sicher kein funktionales Py-
> thon und er wuergt immer noch, wenn er nur an "lambda" 
> denkt!
> 
> Warum ist Python funktional? "Map", "filter" und "reduce" 
> kann jeder in wenigen Zeilen Python selbst schreiben. Macht 
> "lambda" Python schon funktional? Doch wohl kaum... Es ist
> manchmal praktisch, wenn man keine Funktion deklarieren
> will/kann und das war's dann auch schon mit dieser Funkt-
> ionalitaet in Python! ;-)

lambda, map usw. stören mich nicht "an sich", man _kann_ damit sicher guten,
lesbaren Code schreiben. Das Problem sehe ich aber darin, dass diese Konstrukte
es ziemlich leicht machen, schwer verständlichen Code zu schreiben, der zuviel
"auf zu engem Raum" tut. Aus dem gleichen Grund, so denke ich, gibt es keine
Zuweisungs-_Operatoren_ und keinen ternären ?: -Operator wie in C.

Guido hat bei seiner Abneigung vermutlich im Kopf, dass ohne lambda, map, filter
etc. es für dieselbe "Aussage" im Code weitere Formulierungen gibt, die noch dazu
dazu neigen, schlechter lesbar zu sein.

Was _mich_ übrigens bei der Verwendung von lambda und Co. stört, ist, wenn sie
geschachtelt auftreten. Darauf bezog ich mich in einer anderen Mail mit dem
Wort "entschlüsseln". Ich lese viel lieber linearen Code, als eine Anweisung
gedanklich daraufhin zu untersuchen, welche Unterausdrücke aufgrund der Klammerung
zuerst berechnet werden, und wo dann weitergemacht wird.

Abgesehen von vertrauten Idiomen hat das m. E. auch wenig mit "Geschmacksfragen"
zu tun; etwas von innen nach außen zerlegen zu müssen, ist (bei Code derselben
Funktionalität) nunmal anstrengender, als etwas Schritt für Schritt präsentiert
zu sehen und sich nur den jeweils letzten Stand merken zu müssen. Hier wird mir
die Zerlegung von innen nach außen (oder in welcher Reihenfolge auch immer) vom
Programmierer quasi abgenommen.

Soweit meine ganz persönliche Ansicht dazu. ;-)

Stefan





More information about the Python-de mailing list