Programowanie w jezyku Clojure.pdf

(541 KB) Pobierz
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.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis tre ci
PodziÚkowania ............................................................................................10
Przedmowa do wydania drugiego .............................................................11
Przedmowa do wydania pierwszego ........................................................13
WstÚp ...........................................................................................................15
Rozdziaï 1. Wprowadzenie .........................................................................23
1.1. Dlaczego Clojure? .............................................................................................24
1.2. Szybkie wprowadzenie do programowania w Clojure ...........................................34
1.3. Biblioteki jÚzyka Clojure .....................................................................................40
1.4. Podsumowanie ..................................................................................................44
Rozdziaï 2. PrzeglÈd jÚzyka Clojure ..........................................................45
2.1. Konstrukcje skïadniowe ......................................................................................46
2.2. Makra odczytu ...................................................................................................55
2.3. Funkcje .............................................................................................................56
2.4. Zmienne, wiÈzania i przestrzenie nazw ...............................................................61
2.5. Wywoïywanie kodu Javy .....................................................................................68
2.6. Przepïyw sterowania ..........................................................................................70
2.7. Gdzie siÚ podziaïa pÚtla for? ..............................................................................74
2.8. Metadane ..........................................................................................................77
2.9. Podsumowanie ..................................................................................................79
Kup książkę
Poleć książkę
8
Programowanie w jÚzyku Clojure
Rozdziaï 3. Ujednolicanie danych za pomocÈ sekwencji .......................81
3.1. Wszystko jest sekwencjÈ .....................................................................................83
3.2. Stosowanie biblioteki sekwencji ...........................................................................87
3.3. Sekwencje nieskoñczone 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” podej cie? ......................................................................121
4.3. Leniwsze ni leniwe .........................................................................................130
4.4. Jeszcze o rekurencji ..........................................................................................136
4.5. Podsumowanie ................................................................................................146
Rozdziaï 5. Stan .........................................................................................147
5.1. Wspóïbie no Ê, równolegïo Ê 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. ZarzÈdzanie stanem specyficznym dla wÈtku za pomocÈ zmiennych ....................163
5.6. Gra Snake w jÚzyku Clojure .............................................................................168
5.7. Podsumowanie ................................................................................................178
Rozdziaï 6. Protokoïy i typy danych .......................................................179
6.1. Programowanie z wykorzystaniem abstrakcji ......................................................180
6.2. Interfejsy .........................................................................................................183
6.3. Protokoïy ........................................................................................................184
6.4. Typy danych ...................................................................................................188
6.5. Rekordy ..........................................................................................................193
6.6. Makro reify .....................................................................................................198
6.7. Podsumowanie ................................................................................................199
Kup książkę
Poleć książkę
Spis tre ci
9
Rozdziaï 7. Makra .....................................................................................201
7.1. Kiedy nale y 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. WiÚcej ni proste wybieranie metod ...................................................................231
8.4. Tworzenie dora nych taksonomii ......................................................................233
8.5. Kiedy nale y korzystaÊ z wielometod? ...............................................................237
8.6. Podsumowanie ................................................................................................241
Rozdziaï 9. Sztuczki z JavÈ ......................................................................243
9.1. Obsïuga wyjÈtków ............................................................................................244
9.2. Zmagania z liczbami caïkowitymi .....................................................................248
9.3. Optymalizowanie wydajno ci ............................................................................250
9.4. Tworzenie klas Javy w jÚzyku Clojure ................................................................255
9.5. Praktyczny przykïad .........................................................................................261
9.6. Podsumowanie ................................................................................................268
Rozdziaï 10. Tworzenie aplikacji ............................................................269
10.1. Wynik w grze Clojurebreaker ..........................................................................270
10.2. Testowanie kodu zwracajÈcego wynik ..............................................................274
10.3. Biblioteka test.generative ................................................................................278
10.4. Tworzenie interfejsu .......................................................................................287
10.5. Instalowanie kodu ..........................................................................................292
10.6. Po egnanie ....................................................................................................295
Dodatek A. Edytory kodu .........................................................................297
Dodatek B. Bibliografia ............................................................................299
Skorowidz ..................................................................................................301
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin