Spis treści Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Podziękowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Część I
Paradygmat funkcyjny 1.
Programowanie funkcyjne wraca do łask . . . . . . . . . . . . . . . . . . . . . . . . 3 Widzieliśmy już ten film Nowe argumenty za programowaniem funkcyjnym
2.
3 5
Myślenie funkcyjne dla imperatywnego umysłu . . . . . . . . . . . . . . . . . . 7 Wszystko sprowadza się do funkcji Chodzi o niemutowalność Chodzi o sposób myślenia
7 8 9
Część II
Scala – język hybrydowy 3.
Scala i styl funkcyjny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Czystość funkcyjna Funkcje wyższego rzędu Prosty przykład Przykład praktyczny Co ze znajdowaniem błędów i wydajnością?
4.
15 16 16 18 21
Praca z kolekcjami języka Scala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Kolekcje niemutowalne Kolekcje zmienne (mutowalne) Kolekcje leniwe
23 27 27