In vielen Fällen ist es so, daß es viele richtige Arten der Formulierung eines Programmteils gibt. Gibt es ,,bessere`` oder ,,schlechtere`` Formulierungen? Davie schreibt dazu in [Dav92], daß das ,,Ich kann das mit weniger Symbolen schreiben als Du`` uns nicht recht weiterbringt und daß das ,,Ich kann das eleganter schreiben als Du`` uns möglicherweise mehr Einsicht in die Arbeitsweise des Algorithmus liefert, aber eine Freizeitbeschäftigung ist auf die man beliebig viel Zeit verschwenden kann. Nach Ihm sollten wir nach dem ,,Ich kann das in geringerer Zeit schreiben als Du`` streben.
Meiner Meinung nach ist das nur die halbe Wahrheit, denn eine
übersichtliche (meistens auch kurze) Funktion und eine leicht
verständliche (meist auch elegante) Formulierung ermöglichen erst
ein Programm in kurzer Zeit zu schreiben, denn man wird es bis es
fertig ist oft lesen, verstehen und darüber nachdenken müssen.
Die Erfahrung zeigt, daß eine Funktion häufig dadurch leichter zu
implementieren ist, daß man sich überlegt, aus welcher allgemeineren
Funktion sie sich durch Spezialisierung ergibt. Fast immer gewinnt
eine Funktion an Verständlichkeit, wenn statt map
und
filter
list comprehensions verwendet werden. Die Funktionen
benötigen dann weniger Platz und die Mengenschreibweise ist einem im
allg. vertrauter als die Formulierung mit Hilfe von map
und
filter
.
Es ist anzuraten, eher mehrere kleinere Funktionen aus nur ein paar Zeilen
zu definieren, als umfangreiche Funktionen, die sehr komplexe Probleme
lösen. Man kann im Interpretierer jede dieser kleinen Funktionen
schnell durchtesten, was die Fehlersuche vereinfacht.