scala od podszewki full scan(1).pdf
(
11437 KB
)
Pobierz
Spis treci
Sowo wstpne ............................................................................................................................................ 7
Przedmowa ................................................................................................................................................. 9
Podzikowania .......................................................................................................................................... 11
O ksice ................................................................................................................................................... 13
Rozdzia 1. Scala: jzyk mieszany
17
1.1.
Programowanie funkcyjne i obiektowe w jednym .................................................................... 18
1.1.1.
Koncepty funkcyjne ......................................................................................................20
1.1.2.
Analiza konceptów funkcyjnych w Google Collections .............................................. 22
1.2.
Statyczne typowanie a ekspresywno kodu ............................................................................. 23
1.2.1.
Zamiana stron ................................................................................................................ 24
1.2.2.
Wnioskowanie na temat typów ..................................................................................... 24
1.2.3.
Uproszczona skadnia ....................................................................................................25
1.2.4.
Wartoci i konwersje domniemane .............................................................................. 26
1.2.5.
Sowo kluczowe implicit ............................................................................................... 27
1.3.
Wygodna wspópraca z JVM ....................................................................................................... 28
1.3.1.
Java w Scali .................................................................................................................... 28
1.3.2.
Scala w Javie .................................................................................................................. 29
1.3.3.
Zalety JVM ..................................................................................................................... 30
1.4.
Podsumowanie .............................................................................................................................. 31
Rozdzia 2. Podstawowe zasady
33
2.1.
Eksperymenty w rodowisku REPL ........................................................................................... 33
2.1.1.
Programowanie sterowane eksperymentami ............................................................... 34
2.1.2.
Obejcie zachannego parsowania ................................................................................ 36
2.1.3.
Elementy jzyka niedostpne w REPL ....................................................................... 37
2.2.
Mylenie wyraeniami ................................................................................................................. 38
2.2.1.
Unikanie instrukcji return ............................................................................................ 39
2.2.2.
Modyfikowalno ........................................................................................................... 41
2.3.
Obiekty niemodyfikowalne ......................................................................................................... 43
2.3.1.
Równowano obiektów .............................................................................................. 44
2.3.2.
Wspóbieno ............................................................................................................... 48
2.4.
None zamiast null ......................................................................................................................... 51
2.4.1.
Zaawansowane techniki wykorzystania klasy Option ................................................. 52
2.5.
Równowano polimorficzna ..................................................................................................... 55
2.5.1.
Przykad: biblioteka obsugujca kalendarz ................................................................. 55
2.5.2.
Polimorficzna implementacja metody equals .............................................................. 57
2.6.
Podsumowanie .............................................................................................................................. 59
4
Spis treci
Rozdzia 3. Par sów na temat konwencji kodowania
61
3.1.
Unikanie konwencji pochodzcych z innych jzyków .............................................................. 62
3.1.1.
Poraka z blokami kodu ................................................................................................ 63
3.2.
Wiszce operatory i wyraenia w nawiasach ............................................................................ 66
3.3.
Znaczce nazwy zmiennych ........................................................................................................ 67
3.3.1.
Unikanie w nazwach znaku $ ....................................................................................... 68
3.3.2.
Parametry nazwane i wartoci domylne ..................................................................... 71
3.4.
Oznaczanie przesaniania metod ................................................................................................ 73
3.5.
Adnotacje optymalizacyjne ......................................................................................................... 78
3.5.1.
Optymalizacja tableswitch ............................................................................................ 79
3.5.2.
Optymalizacja wywoa ogonowych ............................................................................ 81
3.6.
Podsumowanie .............................................................................................................................. 84
Rozdzia 4. Obiektowo
85
4.1.
W ciele obiektu lub cechy — tylko kod inicjalizujcy ............................................................. 86
4.1.1.
Opóniona inicjalizacja .................................................................................................86
4.1.2.
Wielokrotne dziedziczenie ........................................................................................... 87
4.2.
Puste implementacje metod abstrakcyjnych w cechach .......................................................... 89
4.3.
Kompozycja moe obejmowa dziedziczenie ............................................................................ 93
4.3.1.
Kompozycja i dziedziczenie razem .............................................................................. 96
4.3.2.
Klasyczne konstruktory… z niespodziank ................................................................. 97
4.4.
Wydzielenie interfejsu abstrakcyjnego do postaci osobnej cechy .......................................... 99
4.4.1.
Interfejsy, z którymi mona porozmawia ................................................................. 101
4.4.2.
Nauka pynca z przeszoci ....................................................................................... 102
4.5.
Okrelanie typów zwracanych przez publiczne API .............................................................. 103
4.6.
Podsumowanie ............................................................................................................................ 105
Rozdzia 5. Domniemane wartoci i widoki podstaw ekspresywnego kodu
107
5.1.
Sowo kluczowe implicit ............................................................................................................ 108
5.1.1.
Identyfikatory (dygresja) ............................................................................................. 109
5.1.2.
Zakres i wizania ......................................................................................................... 111
5.1.3.
Wyszukiwanie wartoci domniemanych .................................................................... 115
5.2.
Wzmacnianie klas za pomoc domniemanych widoków ....................................................... 119
5.3.
Parametry domniemane i domylne ........................................................................................ 124
5.4.
Ograniczanie zakresu encji domniemanych ........................................................................... 130
5.4.1.
Przygotowywanie encji domniemanych do zaimportowania .................................... 131
5.4.2.
Parametry i widoki domniemane bez podatku od importu ...................................... 133
5.5.
Podsumowanie ............................................................................................................................ 137
Rozdzia 6. System typów
139
6.1.
Typy ............................................................................................................................................. 140
6.1.1.
Typy i cieki ............................................................................................................... 141
6.1.2.
Sowo kluczowe type ................................................................................................... 143
6.1.3.
Typy strukturalne ........................................................................................................ 144
6.2.
Ograniczenia typów ................................................................................................................... 151
6.3.
Parametry typu i typy wyszego rzdu .................................................................................... 153
6.3.1.
Ograniczenia parametrów typu .................................................................................. 153
6.3.2.
Typy wyszego rzdu .................................................................................................. 155
Spis treci
5
6.4.
Wariancja .................................................................................................................................... 156
6.4.1.
Zaawansowane adnotacje wariancji ........................................................................... 160
6.5.
Typy egzystencjalne ................................................................................................................... 163
6.5.1.
Formalna skadnia typów egzystencjalnych .............................................................. 165
6.6.
Podsumowanie ............................................................................................................................ 167
Rozdzia 7. czenie typów z wartociami i widokami domniemanymi
169
7.1.
Ograniczenia kontekstu i ograniczenia widoku ...................................................................... 170
7.1.1.
Kiedy stosowa domniemane ograniczenia typu? ..................................................... 171
7.2.
Dodawanie typów do parametrów domniemanych ................................................................ 172
7.2.1.
Manifesty ..................................................................................................................... 172
7.2.2.
Korzystanie z manifestów ........................................................................................... 173
7.2.3.
Ograniczenia typu ....................................................................................................... 175
7.2.4.
Wyspecjalizowane metody ......................................................................................... 177
7.3.
Klasy typu .................................................................................................................................... 178
7.3.1.
FileLike jako klasa typu .............................................................................................. 181
7.3.2.
Zalety klas typu ............................................................................................................ 184
7.4.
Egzekucja warunkowa z uyciem systemu typów ................................................................... 185
7.4.1.
Heterogeniczne listy typowane .................................................................................. 187
7.4.2.
Cecha IndexedView .................................................................................................... 190
7.5.
Podsumowanie ............................................................................................................................ 196
Rozdzia 8. Wybór odpowiedniej kolekcji
197
8.1.
Wybór odpowiedniego rodzaju kolekcji .................................................................................. 198
8.1.1.
Hierarchia kolekcji ...................................................................................................... 198
8.1.2.
Traversable .................................................................................................................. 200
8.1.3.
Iterable ......................................................................................................................... 203
8.1.4.
Seq ............................................................................................................................... 204
8.1.5.
LinearSeq .................................................................................................................... 205
8.1.6.
IndexedSeq .................................................................................................................. 207
8.1.7.
Set ................................................................................................................................ 208
8.1.8.
Map .............................................................................................................................. 208
8.2.
Kolekcje niemodyfikowalne ...................................................................................................... 210
8.2.1.
Vector ........................................................................................................................... 210
8.2.2.
List ............................................................................................................................... 212
8.2.3.
Stream .......................................................................................................................... 213
8.3.
Kolekcje modyfikowalne ........................................................................................................... 216
8.3.1.
ArrayBuffer .................................................................................................................. 217
8.3.2.
Nasuchiwanie zdarze zmiany kolekcji za pomoc domieszek ............................... 217
8.3.3.
Synchronizacja z uyciem domieszek ........................................................................ 218
8.4.
Zmiana czasu ewaluacji za pomoc widoków i kolekcji równolegych ................................. 218
8.4.1.
Widoki .......................................................................................................................... 219
8.4.2.
Kolekcje równolege ................................................................................................... 221
8.5.
Pisanie metod, które mona wykorzysta na wszystkich typach kolekcji ............................ 223
8.5.1.
Optymalizacja algorytmów dla rónych typów kolekcji ............................................ 226
8.6.
Podsumowanie ............................................................................................................................ 229
6
Spis treci
Rozdzia 9. Aktorzy
231
9.1.
Kiedy stosowa aktorów? ........................................................................................................... 232
9.1.1.
Zastosowanie aktorów do wyszukiwania .................................................................... 232
9.2.
Typowane, przezroczyste referencje ....................................................................................... 235
9.2.1.
Realizacja algorytmu rozprosz-zgromad przy uyciu OutputChannel ................... 236
9.3.
Ograniczanie bdów do stref ................................................................................................... 240
9.3.1.
Strefy bdu w przykadzie rozprosz-zgromad ........................................................ 240
9.3.2.
Ogólne zasady obsugi awarii ..................................................................................... 243
9.4.
Ograniczanie przecie za pomoc stref planowania .......................................................... 244
9.4.1.
Strefy planowania ........................................................................................................ 245
9.5.
Dynamiczna topologia aktorów ................................................................................................ 247
9.6.
Podsumowanie ............................................................................................................................ 251
Rozdzia 10. Integracja Scali z Jav 253
10.1. Rónice jzykowe pomidzy Scal a Jav ................................................................................ 254
10.1.1. Rónice w opakowywaniu typów prostych ................................................................ 255
10.1.2. Widoczno .................................................................................................................. 259
10.1.3. Nieprzekadalne elementy jzyka .............................................................................. 260
10.2. Uwaga na domniemane konwersje ........................................................................................... 263
10.2.1. Tosamo i równowano obiektów ........................................................................ 263
10.2.2. acuchy domniemanych widoków ........................................................................... 265
10.3. Uwaga na serializacj w Javie ................................................................................................... 267
10.3.1. Serializacja klas anonimowych ................................................................................... 269
10.4. Adnotowanie adnotacji .............................................................................................................. 271
10.4.1. Cele adnotacji .............................................................................................................. 272
10.4.2. Scala i pola statyczne ................................................................................................... 273
10.5. Podsumowanie ............................................................................................................................ 274
Rozdzia 11. Wzorce w programowaniu funkcyjnym 277
11.1. Teoria kategorii w informatyce ................................................................................................ 278
11.2. Funktory i monady oraz ich zwizek z kategoriami ............................................................... 281
11.2.1. Monady ........................................................................................................................ 284
11.3. Rozwijanie funkcji i styl aplikacyjny ........................................................................................ 286
11.3.1. Rozwijanie funkcji ....................................................................................................... 286
11.3.2. Styl aplikacyjny ........................................................................................................... 288
11.4. Monady jako przepywy pracy .................................................................................................. 291
11.5. Podsumowanie ............................................................................................................................ 295
Skorowidz
297
Plik z chomika:
azureuva
Inne pliki z tego folderu:
syndrom miłego człowieka. jak osiągnąć sukces, pozostając sobą ebook.pdf
(4813 KB)
macpodręcznik helion.pdf
(14743 KB)
niezbędnik kobiety sukcesu. jak skutecznie walczyć o awans i pieniądze. pełna wersja(1).pdf
(4324 KB)
pieniadze-lubia-zarabiac.-podrecznik-skutecznego-inwestora helion.pdf
(1871 KB)
brzdącu, śpij słodko! spraw, by twoje dziecko przesypiało całe noce pełna wersja.pdf
(4277 KB)
Inne foldery tego chomika:
Alchemia Kariery
Audio Booki
biznes, ekonomia, finanse
Bralczyk Jerzy - Porzekadła na każdy dzień
Brian Tracy
Zgłoś jeśli
naruszono regulamin