Python Language
Funktionale Programmierung in Python
Suche…
Einführung
Die Funktionsprogrammierung zerlegt ein Problem in eine Reihe von Funktionen. Im Idealfall nehmen Funktionen nur Eingaben auf und erzeugen Ausgaben, und sie haben keinen internen Status, der die Ausgabe für eine bestimmte Eingabe beeinflusst.
Lambda-Funktion
Eine anonyme Inline-Funktion, die mit Lambda definiert ist. Die Parameter des Lambda sind links vom Doppelpunkt definiert. Der Funktionskörper wird rechts vom Doppelpunkt definiert. Das Ergebnis der Ausführung des Funktionskörpers wird (implizit) zurückgegeben.
s=lambda x:x*x
s(2) =>4
Kartenfunktion
Map übernimmt eine Funktion und eine Sammlung von Elementen. Es erstellt eine neue leere Sammlung, führt die Funktion für jedes Element in der ursprünglichen Sammlung aus und fügt jeden Rückgabewert in die neue Sammlung ein. Es gibt die neue Sammlung zurück.
Dies ist eine einfache Map, die eine Namensliste verwendet und eine Liste der Längen dieser Namen zurückgibt:
name_lengths = map(len, ["Mary", "Isla", "Sam"])
print(name_lengths) =>[4, 4, 3]
Funktion reduzieren
Reduzieren nimmt eine Funktion und eine Sammlung von Elementen. Es gibt einen Wert zurück, der durch Kombinieren der Elemente erstellt wird.
Dies ist eine einfache Reduzierung. Sie gibt die Summe aller Elemente in der Sammlung zurück.
total = reduce(lambda a, x: a + x, [0, 1, 2, 3, 4])
print(total) =>10
Filterfunktion
Der Filter übernimmt eine Funktion und eine Sammlung. Es gibt eine Auflistung aller Elemente zurück, für die die Funktion True zurückgegeben hat.
arr=[1,2,3,4,5,6]
[i for i in filter(lambda x:x>4,arr)] # outputs[5,6]