Programowanie_w_jezyku_Clojure_proclo.pdf

(704 KB) Pobierz
1021152442.003.png
Tytuł oryginału: Programming Clojure
Tłumaczenie: Tomasz Walczak
ISBN: 978-83-246-5372-0
© Helion 2013.
All rights reserved.
Copyright © 2012 The Pragmatic Programmers, LLC.
All rights reserved.
No part of this publication may be reproduced, stored in retrieval system, or transmitted,
in any form, or by any means, electronic, mechanical, photocopying, recording, or otherwise,
without the prior consent of the poublisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym
powoduje naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi
ich właścicieli.
Wydawnictwo HELION dołożyło wszelkich starań, by zawarte w tej książce informacje
były kompletne i rzetelne. Nie bierze jednak żadnej odpowiedzialności ani za ich wykorzystanie,
ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Wydawnictwo
HELION nie ponosi również żadnej odpowiedzialności za ewentualne szkody wynikłe
z wykorzystania informacji zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/proclo.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/proclo
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
1021152442.004.png
Spis treci
Podzikowania ............................................................................................10
Przedmowa do wydania drugiego .............................................................11
Przedmowa do wydania pierwszego ........................................................13
Wstp ...........................................................................................................15
Rozdzia 1. Wprowadzenie .........................................................................23
1.1. Dlaczego Clojure? .............................................................................................24
1.2. Szybkie wprowadzenie do programowania w Clojure ...........................................34
1.3. Biblioteki jzyka Clojure .....................................................................................40
1.4. Podsumowanie ..................................................................................................44
Rozdzia 2. Przegld jzyka Clojure ..........................................................45
2.1. Konstrukcje skadniowe ......................................................................................46
2.2. Makra odczytu ...................................................................................................55
2.3. Funkcje .............................................................................................................56
2.4. Zmienne, wizania i przestrzenie nazw ...............................................................61
2.5. Wywoywanie kodu Javy .....................................................................................68
2.6. Przepyw sterowania ..........................................................................................70
2.7. Gdzie si podziaa ptla for? ..............................................................................74
2.8. Metadane ..........................................................................................................77
2.9. Podsumowanie ..................................................................................................79
1021152442.005.png
 
8
Programowanie w jzyku Clojure
Rozdzia 3. Ujednolicanie danych za pomoc sekwencji .......................81
3.1. Wszystko jest sekwencj .....................................................................................83
3.2. Stosowanie biblioteki sekwencji ...........................................................................87
3.3. Sekwencje nieskoczone i „leniwe” .....................................................................96
3.4. W Clojure Java jest sekwencyjna .........................................................................98
3.5. Funkcje przeznaczone dla konkretnych struktur ..................................................104
3.6. Podsumowanie ................................................................................................113
Rozdzia 4. Programowanie funkcyjne ...................................................115
4.1. Zagadnienia z obszaru programowania funkcyjnego ...........................................116
4.2. Jak stosowa „leniwe” podejcie? ......................................................................121
4.3. Leniwsze ni leniwe .........................................................................................130
4.4. Jeszcze o rekurencji ..........................................................................................136
4.5. Podsumowanie ................................................................................................146
Rozdzia 5. Stan .........................................................................................147
5.1. Wspóbieno, równolego i blokady .............................................................148
5.2. Referencje i pami STM ................................................................................150
5.3. Nieskoordynowane i synchroniczne aktualizacje za pomoc atomów ....................157
5.4. Stosowanie agentów do asynchronicznego aktualizowania danych .......................158
5.5. Zarzdzanie stanem specyficznym dla wtku za pomoc zmiennych ....................163
5.6. Gra Snake w jzyku Clojure .............................................................................168
5.7. Podsumowanie ................................................................................................178
Rozdzia 6. Protokoy i typy danych .......................................................179
6.1. Programowanie z wykorzystaniem abstrakcji ......................................................180
6.2. Interfejsy .........................................................................................................183
6.3. Protokoy ........................................................................................................184
6.4. Typy danych ...................................................................................................188
6.5. Rekordy ..........................................................................................................193
6.6. Makro reify .....................................................................................................198
6.7. Podsumowanie ................................................................................................199
1021152442.001.png
 
Spis treci
9
Rozdzia 7. Makra .....................................................................................201
7.1. Kiedy naley stosowa makra? ..........................................................................202
7.2. Makro do sterowania przebiegiem programu ......................................................202
7.3. Upraszczanie makr ..........................................................................................209
7.4. Taksonomia makr ............................................................................................214
7.5. Podsumowanie ................................................................................................224
Rozdzia 8. Wielometody ..........................................................................225
8.1. ycie bez wielometod ......................................................................................226
8.2. Definiowanie wielometod .................................................................................228
8.3. Wicej ni proste wybieranie metod ...................................................................231
8.4. Tworzenie doranych taksonomii ......................................................................233
8.5. Kiedy naley korzysta z wielometod? ...............................................................237
8.6. Podsumowanie ................................................................................................241
Rozdzia 9. Sztuczki z Jav ......................................................................243
9.1. Obsuga wyjtków ............................................................................................244
9.2. Zmagania z liczbami cakowitymi .....................................................................248
9.3. Optymalizowanie wydajnoci ............................................................................250
9.4. Tworzenie klas Javy w jzyku Clojure ................................................................255
9.5. Praktyczny przykad .........................................................................................261
9.6. Podsumowanie ................................................................................................268
Rozdzia 10. Tworzenie aplikacji ............................................................269
10.1. Wynik w grze Clojurebreaker ..........................................................................270
10.2. Testowanie kodu zwracajcego wynik ..............................................................274
10.3. Biblioteka test.generative ................................................................................278
10.4. Tworzenie interfejsu .......................................................................................287
10.5. Instalowanie kodu ..........................................................................................292
10.6. Poegnanie ....................................................................................................295
Dodatek A. Edytory kodu .........................................................................297
Dodatek B. Bibliografia ............................................................................299
Skorowidz ..................................................................................................301
1021152442.002.png
 
Zgłoś jeśli naruszono regulamin