Eine Sache, die für diese Frage (und die Antworten) wirklich wichtig ist, ist die folgende: Was zum Teufel ist funktionale Programmierung und was sind die wichtigsten Eigenschaften davon. Ich werde versuchen, meine Meinung dazu zu äußern:
Funktionale Programmierung ähnelt dem Schreiben von Mathematik auf einem Whiteboard. Wenn Sie Gleichungen auf ein Whiteboard schreiben, denken Sie nicht an eine Ausführungsreihenfolge. Es gibt (typischerweise) keine Mutation. Sie kommen am nächsten Tag nicht zurück und sehen es sich an, und wenn Sie die Berechnungen erneut durchführen, erhalten Sie ein anderes Ergebnis (oder Sie können, wenn Sie frischen Kaffee getrunken haben :)). Grundsätzlich ist das, was auf der Tafel steht, da, und die Antwort war bereits da, als Sie anfingen, Dinge aufzuschreiben. Sie haben einfach noch nicht bemerkt, was es ist.
Funktionale Programmierung ist sehr ähnlich; Sie ändern nichts, Sie bewerten nur die Gleichung (oder in diesem Fall "Programm") und finden heraus, wie die Antwort lautet. Das Programm ist immer noch da, unverändert. Das gleiche gilt für die Daten.
Ich würde Folgendes als die wichtigsten Merkmale der funktionalen Programmierung einstufen: a) referenzielle Transparenz - Wenn Sie dieselbe Aussage zu einem anderen Zeitpunkt und an einem anderen Ort bewerten, aber mit denselben variablen Werten, bedeutet dies immer noch dasselbe. b) Keine Nebenwirkung - egal wie lange Sie auf das Whiteboard starren, die Gleichung, die ein anderer Mann auf ein anderes Whiteboard schaut, ändert sich nicht versehentlich. c) Funktionen sind ebenfalls Werte. die herumgereicht und mit oder auf andere Variablen angewendet werden können. d) Funktionszusammensetzung, Sie können h = g · f ausführen und somit eine neue Funktion h (..) definieren, die dem Aufruf von g (f (..)) entspricht.
Diese Liste befindet sich in meiner priorisierten Reihenfolge, daher ist referenzielle Transparenz am wichtigsten, gefolgt von keinen Nebenwirkungen.
Wenn Sie nun Python durchgehen und prüfen, wie gut die Sprache und die Bibliotheken diese Aspekte unterstützen und garantieren, sind Sie auf dem besten Weg, Ihre eigene Frage zu beantworten.