Programowanie funkcyjne
Krok po kroku
Języki funkcyjne zdobywają wśród programistów coraz większą popularność. Jak
bezboleśnie zmienić sposób myślenia na funkcyjny? Ułatwi Ci to niniejsza książka, w
całości poświęcona temu podejściu do programowania.
Poznaj podstawy teoretyczne programowania funkcyjnego, a następnie zacznij
zgłębiać tajniki typów funkcyjnych, rekurencji oraz zmiennych niepodlegających
modyfikacji.
Z kolejnych rozdziałów dowiedz się, czym są ewaluacja rygorystyczna i
nierygorystyczna. Zobacz też, jak wykonać dopasowanie do wzorca. Co jeszcze znajdziesz w
tej książce? Wprowadzenie do języka Scala, przedstawienie języka Groovy oraz opis
technik funkcyjnego programowania obiektowego to tylko niektóre z poruszanych w niej
tematów. Jeżeli chcesz zmienić sposób programowania na funkcyjny, to doskonała
pozycja dla Ciebie!
Dowiesz się, czemu obecne sprawnie działające aplikacje lepiej funkcjonują z
kodem funkcyjnym.
Przejdziesz od wzorców stylu imperatywnego do kodu funkcyjnego w kilku podstawowych
krokach.
Przyspieszysz z językami Groovy i Scala dzięki przykładom.
Zrozumiesz, w jaki sposób typy funkcyjne są przekazywane do innych funkcji i
zwracane z nich.
Przekonwertujesz istniejące metody na funkcje czyste, a pętle na metody
rekurencyjne.
Przejdziesz od zmiennych mutowalnych do niemutowalnych.
Uzyskasz praktyczne doświadczenie w zakresie stosowania instrukcji oraz ewaluacji
nierygorystycznej.
Będziesz stosował programowanie funkcyjne z elementami programowania obiektowego.
Przedmowa (7)
1. Wprowadzenie (15)
- Przegląd koncepcji programowania funkcyjnego (15)
- Typy funkcyjne (16)
- Funkcje czyste (16)
- Rekurencja (16)
- Zmienne niemutowalne (16)
- Ewaluacja nierygorystyczna (16)
- Instrukcje (17)
- Dopasowywanie do wzorca (17)
- Programowanie funkcyjne i współbieżność (17)
- Podsumowanie (18)
2. Typy funkcyjne (19)
- Wprowadzenie do firmy XXY (19)
- Funkcje jako obiekty (22)
- Refaktoryzacja przy użyciu struktur if-else (22)
- Refaktoryzacja przy użyciu obiektów funkcji do wyodrębniania pól (24)
- Funkcje anonimowe (30)
- Funkcje lambda (30)
- Domknięcia (33)
- Funkcje wyższego rzędu (35)
- Refaktoryzacja funkcji get za pomocą języka Groovy (37)
- Podsumowanie (38)
3. Funkcje czyste (41)
- Dane wyjściowe zależą od danych wejściowych (41)
- Oczyszczanie funkcji (45)
- Skutki uboczne (50)
- Podsumowanie (53)
- Przestawianie się na język Groovy (54)
4. Zmienne niemutowalne (59)
- Mutowalność (59)
- Niemutowalność (65)
- Podsumowanie (71)
5. Rekurencja (73)
- Wprowadzenie do rekurencji (74)
- Rekurencja (77)
- Rekurencja ogonowa (80)
- Refaktoryzacja funkcji countEnabledCustomersWithNoEnabledContacts (81)
- Podsumowanie (83)
- Wprowadzenie do języka Scala (84)
6. Ewaluacje rygorystyczne i nierygorystyczne (87)
- Ewaluacja rygorystyczna (88)
- Ewaluacja nierygorystyczna (leniwa) (89)
- Leniwość może stwarzać problemy (93)
- Podsumowanie (96)
7. Instrukcje (99)
- Skok na głęboką wodę (100)
- Proste instrukcje (100)
- Instrukcje blokowe (102)
- Wszystko jest instrukcją (104)
- Podsumowanie (112)
8. Dopasowywanie do wzorca (113)
- Proste dopasowania (113)
- Proste wzorce (115)
- Wyodrębnianie listy (118)
- Wyodrębnianie obiektów (120)
- Konwersja na dopasowywanie do wzorca (122)
- Podsumowanie (124)
9. Funkcyjne programowanie obiektowe (125)
- Hermetyzacja statyczna (125)
- Obiekty jako kontenery (127)
- Kod jako dane (129)
- Podsumowanie (132)
10. Podsumowanie (134)
- Od imperatywności do funkcyjności (134)
- Wprowadzenie funkcji wyższego rzędu (135)
- Konwersja istniejących metod na funkcje czyste (135)
- Konwersja pętli na metody rekurencyjne lub ogonoworekurencyjne (136)
- Konwersja zmiennych mutowalnych na niemutowalne (136)
- Co dalej? (136)
- Nowe wzorce projektowe (137)
- Przekazywanie komunikatów dla osiągnięcia współbieżności (137)
- Wzorzec Opcja (rozszerzenie wzorca Pusty Obiekt) (137)
- Czystość metody singletona z zachowaniem obiektowości (138)
- Wszystko razem (139)
- Podsumowanie (147)
Skorowidz (149)
160 stron, oprawa miękka