siedem języków w siedem tygodni. praktyczny przewodnik nauki języków programowania full version.pdf

(12327 KB) Pobierz
891513033.004.png
Spis treci
Dedykacja ............................................................................................................ 7
Podzikowania .................................................................................................... 9
Sowo wstpne .................................................................................................. 13
Rozdzia 1. Wprowadzenie ............................................................................... 17
1.1. Metoda w szalestwie ............................................................................................... 17
1.2. Jzyki ....................................................................................................................... 19
1.3. Kup t ksik .......................................................................................................... 22
1.4. Nie kupuj tej ksiki ................................................................................................. 23
1.5. Ostateczny wniosek ................................................................................................... 26
Rozdzia 2. Ruby ................................................................................................ 27
2.1. Krótki rys historyczny ............................................................................................... 28
2.2. Dzie 1. Gdzie jest niania? ....................................................................................... 30
2.3. Dzie 2. Sfrun z nieba .......................................................................................... 38
2.4. Dzie 3. Powana zmiana ........................................................................................ 52
2.5. Ruby. Podsumowanie ............................................................................................... 60
Rozdzia 3. Io ..................................................................................................... 65
3.1. Przedstawiamy jzyk Io ............................................................................................. 65
3.2. Dzie 1. Urywamy si ze szkoy. Wagarujemy ........................................................... 66
3.3. Dzie 2. Król kiebasy .............................................................................................. 80
3.4. Dzie 3. Festyn oraz inne dziwne miejsca .................................................................. 89
3.5. Io. Podsumowanie .................................................................................................... 99
Rozdzia 4. Prolog ............................................................................................ 103
4.1. O Prologu ............................................................................................................. 104
4.2. Dzie 1. wietny kierowca ...................................................................................... 105
891513033.005.png
 
6
Siedem jzyków w siedem tygodni
4.3. Dzie 2. Pitnacie minut do Wapnera .................................................................... 119
4.4. Dzie 3. Podbi Vegas ........................................................................................... 131
4.5. Prolog. Podsumowanie ........................................................................................... 143
Rozdzia 5. Scala .............................................................................................. 147
5.1. O jzyku Scala ....................................................................................................... 148
5.2. Dzie 1. Zamek na wzgórzu ................................................................................... 152
5.3. Dzie 2. Przycinanie ywopotu i inne sztuczki ......................................................... 168
5.4. Dzie 3. Cicie puchu ............................................................................................ 183
5.5. Scala. Podsumowanie ............................................................................................. 193
Rozdzia 6. Erlang ........................................................................................... 199
6.1. Przedstawiamy Erlanga .......................................................................................... 200
6.2. Dzie 1. Z wygldu czowiek .................................................................................. 204
6.3. Dzie 2. Zmiana form ............................................................................................ 215
6.4. Dzie 3. Czerwone piguki ...................................................................................... 228
6.5. Erlang. Podsumowanie ........................................................................................... 241
Rozdzia 7. Clojure .......................................................................................... 245
7.1. Przedstawiamy jzyk Clojure ................................................................................... 246
7.2. Dzie 1. Szkolenie Luke’a ...................................................................................... 248
7.3. Dzie 2. Yoda i Moc .............................................................................................. 267
7.4. Dzie 3. Oko za .................................................................................................... 282
7.5. Clojure. Podsumowanie .......................................................................................... 291
Rozdzia 8. Haskell .......................................................................................... 297
8.1. Przedstawiamy Haskella ......................................................................................... 297
8.2. Dzie 1. Wartoci logiczne ..................................................................................... 299
8.3. Dzie 2. Wielka sia Spocka ................................................................................... 315
8.4. Dzie 3. czno umysów .................................................................................... 326
8.5. Haskell. Podsumowanie .......................................................................................... 342
Rozdzia 9. Podsumowanie ............................................................................ 347
9.1. Modele programowania .......................................................................................... 348
9.2. Wspóbieno ....................................................................................................... 351
9.3. Konstrukcje programowania .................................................................................... 354
9.4. Znajd swój gos .................................................................................................... 356
Dodatek A. Bibliografia .................................................................................. 357
Skorowidz ........................................................................................................ 359
891513033.006.png
 
Rozdzia 4.
Prolog
Sally Dibbs, Dibbs Sally. 461-0192.
Raymond
A
ch, ten Prolog. Czasami spektakularnie byskotliwy, innym razem tak sa-
mo frustrujcy. Zdumiewajce odpowiedzi uzyskujemy tylko wtedy, kiedy
wiemy, jak naley zadawa pytania. Porównabym go do postaci z Rain
Mana 1 . Pamitam, jak jeden z gównych bohaterów, Raymond, niewiele mylc,
wyrecytowa numer telefonu Sally Dibbs po przeczytaniu dzie wczeniej ksiki
telefonicznej. Zarówno w przypadku Raymonda, jak i Prologu czsto zadaj sobie
dwa pytania: „Skd on to wiedzia” i „Jak on móg tego nie wiedzie?”. Jest kopal-
ni wiedzy, jeli tylko uda nam si waciwie sformuowa pytanie.
Prolog znaczco róni si od innych jzyków, z którymi dotychczas mielimy do czy-
nienia. Zarówno Io, jak i Ruby zaliczaj si do jzyków imperatywnych . W jzy-
kach imperatywnych formuujemy „przepisy”. Dokadniej mówic, instruujemy kom-
puter, w jaki sposób naley wykona zadanie. Jzyki imperatywne wyszego poziomu
daj programistom nieco wicej swobody. Pozwalaj na poczenie wielu duszych
kroków w jeden. Ogólnie rzecz biorc, programowanie sprowadza si jednak do zde-
finiowania listy skadników i opisania krok po kroku procesu wypiekania ciasta.
1
Rain Man . DVD. Reyseria Barry Levinson. 1988; Los Angeles, CA: MGM, 2000.
891513033.001.png
 
104
Siedem jzyków w siedem tygodni
Zanim podjem prób napisania tego rozdziau, powiciem kilka tygodni na eks-
perymentowanie z Prologiem. W tym czasie skorzystaem z kilku samouczków. Stu-
diowaem midzy innymi przykady z samouczka J.R. Fishera 2 . W poznaniu termi-
nologii i struktury programu pomóg mi te samouczek A. Aaby’ego 3 . Wykonaem
równie wiele samodzielnych wicze.
Prolog jest jzykiem deklaratywnym. Programista podaje fakty i reguy wnioskowa-
nia, a Prolog znajduje rozwizanie. To tak, jakbymy poszli do dobrego cukiernika.
Opisujemy mu ciastka, które nam smakuj, a on sam, na podstawie przekazanych
regu, dobiera skadniki i piecze ciasto. Programujc w Prologu, nie trzeba zna od-
powiedzi na pytanie jak . Za wyciganie wniosków odpowiedzialny jest komputer.
Wystarczy troch poszpera w internecie, aby znale przykady rozwizania sudo-
ku za pomoc programu skadajcego si z mniej ni dwudziestu linijek kodu. S
te programy do ukadania kostki Rubika, czy te rozwizywania popularnych ami-
gówek, takich jak Wiea Hanoi (zaledwie kilkanacie linijek). Prolog by jednym
z pierwszych jzyków programowania logicznego, które odniosy sukces. Programi-
sta formuuje logiczne twierdzenia, a Prolog ocenia, czy s one prawdziwe. W po-
dawanych twierdzeniach mog by luki. Prolog stara si wypeni luki w taki sposób,
by niekompletne fakty tworzyy prawdziwe stwierdzenia.
4.1. O Prologu
Prolog jest jzykiem programowania logicznego opracowanym w 1972 roku przez
Alaina Colmerauera i Phillippe’a Roussela. Jzyk ten zyska popularno w prze-
twarzaniu jzyka naturalnego. Obecnie ten szacowny jzyk dostarcza podstaw pro-
gramowania dla szerokiej gamy problemów — poczwszy od planowania zada,
a skoczywszy na systemach ekspertowych. Ten bazujcy na reguach jzyk mona
wykorzysta do wyraania logiki i zadawania pyta. Tak jak SQL, Prolog przetwa-
rza bazy danych, cho w przypadku Prologu dane skadaj si z regu i zwizków
logicznych. Tak jak SQL, Prolog mona podzieli na dwie czci: jednej do opisy-
wania danych i drugiej do zadawania pyta o dane. W Prologu dane maj posta
logicznych regu. Oto podstawowe bloki budulcowe Prologu:
2
http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html
3
http://www.lix.polytechnique.fr/~liberti/public/computing/prog/prolog/prolog-tutorial.html
891513033.002.png 891513033.003.png
 
Zgłoś jeśli naruszono regulamin