Python Language
Programowanie funkcjonalne w języku Python
Szukaj…
Wprowadzenie
Programowanie funkcjonalne rozkłada problem na zestaw funkcji. Idealnie, funkcje pobierają tylko dane wejściowe i generują dane wyjściowe i nie mają żadnego stanu wewnętrznego, który wpływa na dane wyjściowe wytwarzane dla danych danych wejściowych. Poniżej są techniki funkcjonalne wspólne dla wielu języków: takie jak lambda, mapa, redukcja.
Funkcja Lambda
Anonimowa, wbudowana funkcja zdefiniowana za pomocą lambda. Parametry lambda są zdefiniowane po lewej stronie jelita grubego. Ciało funkcyjne jest zdefiniowane po prawej stronie dwukropka. Wynik uruchomienia treści funkcji jest (niejawnie) zwracany.
s=lambda x:x*x
s(2) =>4
Funkcja mapy
Mapa ma funkcję i zbiór przedmiotów. Tworzy nową, pustą kolekcję, uruchamia funkcję dla każdego elementu w oryginalnej kolekcji i wstawia każdą zwracaną wartość do nowej kolekcji. Zwraca nową kolekcję.
To jest prosta mapa, która pobiera listę nazw i zwraca listę długości tych nazw:
name_lengths = map(len, ["Mary", "Isla", "Sam"])
print(name_lengths) =>[4, 4, 3]
Zmniejsz funkcję
Redukcja ma funkcję i zbiór przedmiotów. Zwraca wartość, która jest tworzona przez połączenie elementów.
To proste zmniejszenie. Zwraca sumę wszystkich pozycji w kolekcji.
total = reduce(lambda a, x: a + x, [0, 1, 2, 3, 4])
print(total) =>10
Funkcja filtra
Filtr ma funkcję i kolekcję. Zwraca kolekcję każdego elementu, dla którego funkcja zwróciła wartość True.
arr=[1,2,3,4,5,6]
[i for i in filter(lambda x:x>4,arr)] # outputs[5,6]