"Funktionale Programmierung" in Py. guter programmierstil?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Costi
User
Beiträge: 545
Registriert: Donnerstag 17. August 2006, 14:21

python hat ja konstrukte die von funktionalen programmiersprachen stammen.
schauen wir uns zum beispiel das da an:

Code: Alles auswählen

list(set(map(lambda a: a.split("/")[-2], filter(lambda a: a.count("/") == min_depth, inits))))
pythons syntax ist fuer sowas einfach nicht gemacht, in haskell wuerde das viel besser ausehen.


ist es "guter programmierstil" den obigen code zu schreiben?
cp != mv
BlackJack

@Costi: Ich würde funktionale Programmierung in Python nicht als schlechten Stil ansehen, aber dass da kann man einfacher formulieren:

Code: Alles auswählen

list(set(a.split('/')[-2] for a in inits if a.count('/') == min_depth))
Da hätte ich persönlich keine Probleme mit in einem Python-Quelltext. Und in Haskell hätte man vielleicht auch eine „list comprehension“ geschrieben.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

In Python sind Funktionsaufrufe wesentlich teurer, dementsprechend kann man nicht alle FP Konzepte einfach übernehmen.

Sinnvoll ist es Funktionen und Methode möglichst ohne Seiteneffekte auskommen zu lassen, diese möglichst klein zu halten und puren Code von Code mit Seiteneffekten zu trennen.
Antworten