%PDF-1.5
%����
1 0 obj
<< /S /GoTo /D (chapter*.1) >>
endobj
4 0 obj
(Preface)
endobj
5 0 obj
<< /S /GoTo /D (part.1) >>
endobj
8 0 obj
(I Starting with the Basics)
endobj
9 0 obj
<< /S /GoTo /D (chapter.1) >>
endobj
12 0 obj
(The Way of the Program)
endobj
13 0 obj
<< /S /GoTo /D (section.1.1) >>
endobj
16 0 obj
(What is a Program?)
endobj
17 0 obj
<< /S /GoTo /D (section.1.2) >>
endobj
20 0 obj
(Running Perl 6)
endobj
21 0 obj
<< /S /GoTo /D (section.1.3) >>
endobj
24 0 obj
(The First Program)
endobj
25 0 obj
<< /S /GoTo /D (section.1.4) >>
endobj
28 0 obj
(Arithmetic Operators)
endobj
29 0 obj
<< /S /GoTo /D (section.1.5) >>
endobj
32 0 obj
(Values and Types)
endobj
33 0 obj
<< /S /GoTo /D (section.1.6) >>
endobj
36 0 obj
(Formal and Natural Languages)
endobj
37 0 obj
<< /S /GoTo /D (section.1.7) >>
endobj
40 0 obj
(Debugging)
endobj
41 0 obj
<< /S /GoTo /D (section.1.8) >>
endobj
44 0 obj
(Glossary)
endobj
45 0 obj
<< /S /GoTo /D (section.1.9) >>
endobj
48 0 obj
(Exercises)
endobj
49 0 obj
<< /S /GoTo /D (chapter.2) >>
endobj
52 0 obj
(Variables, Expressions and Statements)
endobj
53 0 obj
<< /S /GoTo /D (section.2.1) >>
endobj
56 0 obj
(Assignment Statements)
endobj
57 0 obj
<< /S /GoTo /D (section.2.2) >>
endobj
60 0 obj
(Variable Names)
endobj
61 0 obj
<< /S /GoTo /D (section.2.3) >>
endobj
64 0 obj
(Expressions and Statements)
endobj
65 0 obj
<< /S /GoTo /D (section.2.4) >>
endobj
68 0 obj
(Script Mode)
endobj
69 0 obj
<< /S /GoTo /D (section.2.5) >>
endobj
72 0 obj
(One-Liner Mode)
endobj
73 0 obj
<< /S /GoTo /D (section.2.6) >>
endobj
76 0 obj
(Order of Operations)
endobj
77 0 obj
<< /S /GoTo /D (section.2.7) >>
endobj
80 0 obj
(String Operations)
endobj
81 0 obj
<< /S /GoTo /D (section.2.8) >>
endobj
84 0 obj
(Comments)
endobj
85 0 obj
<< /S /GoTo /D (section.2.9) >>
endobj
88 0 obj
(Debugging)
endobj
89 0 obj
<< /S /GoTo /D (section.2.10) >>
endobj
92 0 obj
(Glossary)
endobj
93 0 obj
<< /S /GoTo /D (section.2.11) >>
endobj
96 0 obj
(Exercises)
endobj
97 0 obj
<< /S /GoTo /D (chapter.3) >>
endobj
100 0 obj
(Functions)
endobj
101 0 obj
<< /S /GoTo /D (section.3.1) >>
endobj
104 0 obj
(Function Calls)
endobj
105 0 obj
<< /S /GoTo /D (section.3.2) >>
endobj
108 0 obj
(Functions and Methods)
endobj
109 0 obj
<< /S /GoTo /D (section.3.3) >>
endobj
112 0 obj
(Math functions)
endobj
113 0 obj
<< /S /GoTo /D (section.3.4) >>
endobj
116 0 obj
(Composition)
endobj
117 0 obj
<< /S /GoTo /D (section.3.5) >>
endobj
120 0 obj
(Adding New Functions \(a.k.a. Subroutines\))
endobj
121 0 obj
<< /S /GoTo /D (section.3.6) >>
endobj
124 0 obj
(Definitions and Uses)
endobj
125 0 obj
<< /S /GoTo /D (section.3.7) >>
endobj
128 0 obj
(Flow of Execution)
endobj
129 0 obj
<< /S /GoTo /D (section.3.8) >>
endobj
132 0 obj
(Parameters and Arguments)
endobj
133 0 obj
<< /S /GoTo /D (section.3.9) >>
endobj
136 0 obj
(Variables and Parameters Are Local)
endobj
137 0 obj
<< /S /GoTo /D (section.3.10) >>
endobj
140 0 obj
(Stack Diagrams)
endobj
141 0 obj
<< /S /GoTo /D (section.3.11) >>
endobj
144 0 obj
(Fruitful Functions and Void Functions)
endobj
145 0 obj
<< /S /GoTo /D (section.3.12) >>
endobj
148 0 obj
(Function Signatures)
endobj
149 0 obj
<< /S /GoTo /D (section.3.13) >>
endobj
152 0 obj
(Immutable and Mutable Parameters)
endobj
153 0 obj
<< /S /GoTo /D (section.3.14) >>
endobj
156 0 obj
(Functions and Subroutines as First-Class Citizens)
endobj
157 0 obj
<< /S /GoTo /D (section.3.15) >>
endobj
160 0 obj
(Why Functions and Subroutines?)
endobj
161 0 obj
<< /S /GoTo /D (section.3.16) >>
endobj
164 0 obj
(Debugging)
endobj
165 0 obj
<< /S /GoTo /D (section.3.17) >>
endobj
168 0 obj
(Glossary)
endobj
169 0 obj
<< /S /GoTo /D (section.3.18) >>
endobj
172 0 obj
(Exercises)
endobj
173 0 obj
<< /S /GoTo /D (chapter.4) >>
endobj
176 0 obj
(Loops, Conditionals, and Recursion)
endobj
177 0 obj
<< /S /GoTo /D (section.4.1) >>
endobj
180 0 obj
(Integer Division and Modulo)
endobj
181 0 obj
<< /S /GoTo /D (section.4.2) >>
endobj
184 0 obj
(Boolean Expressions)
endobj
185 0 obj
<< /S /GoTo /D (section.4.3) >>
endobj
188 0 obj
(Logical Operators)
endobj
189 0 obj
<< /S /GoTo /D (section.4.4) >>
endobj
192 0 obj
(Conditional Execution)
endobj
193 0 obj
<< /S /GoTo /D (section.4.5) >>
endobj
196 0 obj
(Alternative Execution)
endobj
197 0 obj
<< /S /GoTo /D (section.4.6) >>
endobj
200 0 obj
(Chained Conditionals)
endobj
201 0 obj
<< /S /GoTo /D (section.4.7) >>
endobj
204 0 obj
(Nested Conditionals)
endobj
205 0 obj
<< /S /GoTo /D (section.4.8) >>
endobj
208 0 obj
(If Conditionals as Statement Modifiers)
endobj
209 0 obj
<< /S /GoTo /D (section.4.9) >>
endobj
212 0 obj
(Unless Conditional Statement)
endobj
213 0 obj
<< /S /GoTo /D (section.4.10) >>
endobj
216 0 obj
(For Loops)
endobj
217 0 obj
<< /S /GoTo /D (section.4.11) >>
endobj
220 0 obj
(Recursion)
endobj
221 0 obj
<< /S /GoTo /D (section.4.12) >>
endobj
224 0 obj
(Stack Diagrams for Recursive Subroutines)
endobj
225 0 obj
<< /S /GoTo /D (section.4.13) >>
endobj
228 0 obj
(Infinite Recursion)
endobj
229 0 obj
<< /S /GoTo /D (section.4.14) >>
endobj
232 0 obj
(Keyboard Input)
endobj
233 0 obj
<< /S /GoTo /D (section.4.15) >>
endobj
236 0 obj
(Program Arguments and the MAIN Subroutine)
endobj
237 0 obj
<< /S /GoTo /D (section.4.16) >>
endobj
240 0 obj
(Debugging)
endobj
241 0 obj
<< /S /GoTo /D (section.4.17) >>
endobj
244 0 obj
(Glossary)
endobj
245 0 obj
<< /S /GoTo /D (section.4.18) >>
endobj
248 0 obj
(Exercises)
endobj
249 0 obj
<< /S /GoTo /D (chapter.5) >>
endobj
252 0 obj
(Fruitful Subroutines)
endobj
253 0 obj
<< /S /GoTo /D (section.5.1) >>
endobj
256 0 obj
(Return Values)
endobj
257 0 obj
<< /S /GoTo /D (section.5.2) >>
endobj
260 0 obj
(Incremental Development)
endobj
261 0 obj
<< /S /GoTo /D (section.5.3) >>
endobj
264 0 obj
(Composition)
endobj
265 0 obj
<< /S /GoTo /D (section.5.4) >>
endobj
268 0 obj
(Boolean Functions)
endobj
269 0 obj
<< /S /GoTo /D (section.5.5) >>
endobj
272 0 obj
(A Complete Programming Language)
endobj
273 0 obj
<< /S /GoTo /D (section.5.6) >>
endobj
276 0 obj
(More Recursion)
endobj
277 0 obj
<< /S /GoTo /D (section.5.7) >>
endobj
280 0 obj
(Leap of Faith)
endobj
281 0 obj
<< /S /GoTo /D (section.5.8) >>
endobj
284 0 obj
(One More Example)
endobj
285 0 obj
<< /S /GoTo /D (section.5.9) >>
endobj
288 0 obj
(Checking Types)
endobj
289 0 obj
<< /S /GoTo /D (section.5.10) >>
endobj
292 0 obj
(Multi Subroutines)
endobj
293 0 obj
<< /S /GoTo /D (section.5.11) >>
endobj
296 0 obj
(Debugging)
endobj
297 0 obj
<< /S /GoTo /D (section.5.12) >>
endobj
300 0 obj
(Glossary)
endobj
301 0 obj
<< /S /GoTo /D (section.5.13) >>
endobj
304 0 obj
(Exercises)
endobj
305 0 obj
<< /S /GoTo /D (chapter.6) >>
endobj
308 0 obj
(Iteration)
endobj
309 0 obj
<< /S /GoTo /D (section.6.1) >>
endobj
312 0 obj
(Assignment Versus Equality)
endobj
313 0 obj
<< /S /GoTo /D (section.6.2) >>
endobj
316 0 obj
(Reassignment)
endobj
317 0 obj
<< /S /GoTo /D (section.6.3) >>
endobj
320 0 obj
(Updating Variables)
endobj
321 0 obj
<< /S /GoTo /D (section.6.4) >>
endobj
324 0 obj
(The while Statement)
endobj
325 0 obj
<< /S /GoTo /D (section.6.5) >>
endobj
328 0 obj
(Local Variables and Variable Scoping)
endobj
329 0 obj
<< /S /GoTo /D (section.6.6) >>
endobj
332 0 obj
(Control Flow Statements \(last, next, etc.\))
endobj
333 0 obj
<< /S /GoTo /D (section.6.7) >>
endobj
336 0 obj
(Square Roots)
endobj
337 0 obj
<< /S /GoTo /D (section.6.8) >>
endobj
340 0 obj
(Algorithms)
endobj
341 0 obj
<< /S /GoTo /D (section.6.9) >>
endobj
344 0 obj
(Debugging)
endobj
345 0 obj
<< /S /GoTo /D (section.6.10) >>
endobj
348 0 obj
(Glossary)
endobj
349 0 obj
<< /S /GoTo /D (section.6.11) >>
endobj
352 0 obj
(Exercises)
endobj
353 0 obj
<< /S /GoTo /D (chapter.7) >>
endobj
356 0 obj
(Strings)
endobj
357 0 obj
<< /S /GoTo /D (section.7.1) >>
endobj
360 0 obj
(A String is a Sequence)
endobj
361 0 obj
<< /S /GoTo /D (section.7.2) >>
endobj
364 0 obj
(Common String Operators)
endobj
365 0 obj
<< /S /GoTo /D (subsection.7.2.1) >>
endobj
368 0 obj
(String Length)
endobj
369 0 obj
<< /S /GoTo /D (subsection.7.2.2) >>
endobj
372 0 obj
(Searching For a Substring Within the String)
endobj
373 0 obj
<< /S /GoTo /D (subsection.7.2.3) >>
endobj
376 0 obj
(Extracting a Substring from a String)
endobj
377 0 obj
<< /S /GoTo /D (subsection.7.2.4) >>
endobj
380 0 obj
(A Few Other Useful String Functions or Methods)
endobj
381 0 obj
<< /S /GoTo /D (section.7.3) >>
endobj
384 0 obj
(String Traversal With a while or for Loop)
endobj
385 0 obj
<< /S /GoTo /D (section.7.4) >>
endobj
388 0 obj
(Looping and Counting)
endobj
389 0 obj
<< /S /GoTo /D (section.7.5) >>
endobj
392 0 obj
(Regular Expressions \(Regexes\))
endobj
393 0 obj
<< /S /GoTo /D (section.7.6) >>
endobj
396 0 obj
(Using Regexes)
endobj
397 0 obj
<< /S /GoTo /D (section.7.7) >>
endobj
400 0 obj
(Building your Regex Patterns)
endobj
401 0 obj
<< /S /GoTo /D (subsection.7.7.1) >>
endobj
404 0 obj
(Literal Matching)
endobj
405 0 obj
<< /S /GoTo /D (subsection.7.7.2) >>
endobj
408 0 obj
(Wildcards and Character Classes)
endobj
409 0 obj
<< /S /GoTo /D (subsection.7.7.3) >>
endobj
412 0 obj
(Quantifiers)
endobj
413 0 obj
<< /S /GoTo /D (subsection.7.7.4) >>
endobj
416 0 obj
(Anchors and Assertions)
endobj
417 0 obj
<< /S /GoTo /D (subsection.7.7.5) >>
endobj
420 0 obj
(Alternation)
endobj
421 0 obj
<< /S /GoTo /D (subsection.7.7.6) >>
endobj
424 0 obj
(Grouping and Capturing)
endobj
425 0 obj
<< /S /GoTo /D (subsection.7.7.7) >>
endobj
428 0 obj
(Adverbs \(a.k.a. Modifiers\))
endobj
429 0 obj
<< /S /GoTo /D (subsection.7.7.8) >>
endobj
432 0 obj
(Exercises on Regexes)
endobj
433 0 obj
<< /S /GoTo /D (section.7.8) >>
endobj
436 0 obj
(Putting It All Together)
endobj
437 0 obj
<< /S /GoTo /D (subsection.7.8.1) >>
endobj
440 0 obj
(Extracting Dates)
endobj
441 0 obj
<< /S /GoTo /D (subsection.7.8.2) >>
endobj
444 0 obj
(Extracting an IP Address)
endobj
445 0 obj
<< /S /GoTo /D (section.7.9) >>
endobj
448 0 obj
(Substitutions)
endobj
449 0 obj
<< /S /GoTo /D (subsection.7.9.1) >>
endobj
452 0 obj
(The subst Method)
endobj
453 0 obj
<< /S /GoTo /D (subsection.7.9.2) >>
endobj
456 0 obj
(The s/search/replace/ Construct)
endobj
457 0 obj
<< /S /GoTo /D (subsection.7.9.3) >>
endobj
460 0 obj
(Using Captures)
endobj
461 0 obj
<< /S /GoTo /D (subsection.7.9.4) >>
endobj
464 0 obj
(Adverbs)
endobj
465 0 obj
<< /S /GoTo /D (section.7.10) >>
endobj
468 0 obj
(Debugging)
endobj
469 0 obj
<< /S /GoTo /D (section.7.11) >>
endobj
472 0 obj
(Glossary)
endobj
473 0 obj
<< /S /GoTo /D (section.7.12) >>
endobj
476 0 obj
(Exercises)
endobj
477 0 obj
<< /S /GoTo /D (chapter.8) >>
endobj
480 0 obj
(Case Study: Word Play)
endobj
481 0 obj
<< /S /GoTo /D (section.8.1) >>
endobj
484 0 obj
(Reading from and Writing to Files)
endobj
485 0 obj
<< /S /GoTo /D (section.8.2) >>
endobj
488 0 obj
(Reading Word Lists)
endobj
489 0 obj
<< /S /GoTo /D (section.8.3) >>
endobj
492 0 obj
(Exercises)
endobj
493 0 obj
<< /S /GoTo /D (section.8.4) >>
endobj
496 0 obj
(Search)
endobj
497 0 obj
<< /S /GoTo /D (subsection.8.4.1) >>
endobj
500 0 obj
(Words Longer Than 20 Characters \(Solution\))
endobj
501 0 obj
<< /S /GoTo /D (subsection.8.4.2) >>
endobj
504 0 obj
(Words with No ``e'' \(Solution\))
endobj
505 0 obj
<< /S /GoTo /D (subsection.8.4.3) >>
endobj
508 0 obj
(Avoiding Other Letters \(Solution\))
endobj
509 0 obj
<< /S /GoTo /D (subsection.8.4.4) >>
endobj
512 0 obj
(Using Only Some Letters \(Solution\))
endobj
513 0 obj
<< /S /GoTo /D (subsection.8.4.5) >>
endobj
516 0 obj
(Using All Letters of a List \(Solution\))
endobj
517 0 obj
<< /S /GoTo /D (subsection.8.4.6) >>
endobj
520 0 obj
(Alphabetic Order \(Solution\))
endobj
521 0 obj
<< /S /GoTo /D (subsection.8.4.7) >>
endobj
524 0 obj
(Another Example of Reduction to a Previously Solved Problem)
endobj
525 0 obj
<< /S /GoTo /D (section.8.5) >>
endobj
528 0 obj
(Debugging)
endobj
529 0 obj
<< /S /GoTo /D (section.8.6) >>
endobj
532 0 obj
(Glossary)
endobj
533 0 obj
<< /S /GoTo /D (section.8.7) >>
endobj
536 0 obj
(Exercises)
endobj
537 0 obj
<< /S /GoTo /D (chapter.9) >>
endobj
540 0 obj
(Arrays and Lists)
endobj
541 0 obj
<< /S /GoTo /D (section.9.1) >>
endobj
544 0 obj
(Lists and Arrays Are Sequences)
endobj
545 0 obj
<< /S /GoTo /D (section.9.2) >>
endobj
548 0 obj
(Arrays Are Mutable)
endobj
549 0 obj
<< /S /GoTo /D (section.9.3) >>
endobj
552 0 obj
(Adding New Elements to an Array or Removing Some)
endobj
553 0 obj
<< /S /GoTo /D (section.9.4) >>
endobj
556 0 obj
(Stacks and Queues)
endobj
557 0 obj
<< /S /GoTo /D (section.9.5) >>
endobj
560 0 obj
(Other Ways to Modify an Array)
endobj
561 0 obj
<< /S /GoTo /D (section.9.6) >>
endobj
564 0 obj
(Traversing a List)
endobj
565 0 obj
<< /S /GoTo /D (section.9.7) >>
endobj
568 0 obj
(New Looping Constructs)
endobj
569 0 obj
<< /S /GoTo /D (section.9.8) >>
endobj
572 0 obj
(Map, Filter and Reduce)
endobj
573 0 obj
<< /S /GoTo /D (subsection.9.8.1) >>
endobj
576 0 obj
(Reducing a List to a Value)
endobj
577 0 obj
<< /S /GoTo /D (subsection.9.8.2) >>
endobj
580 0 obj
(The Reduction Metaoperator)
endobj
581 0 obj
<< /S /GoTo /D (subsection.9.8.3) >>
endobj
584 0 obj
(Mapping a List to Another List)
endobj
585 0 obj
<< /S /GoTo /D (subsection.9.8.4) >>
endobj
588 0 obj
(Filtering the Elements of a List)
endobj
589 0 obj
<< /S /GoTo /D (subsection.9.8.5) >>
endobj
592 0 obj
(Higher Order Functions and Functional Programming)
endobj
593 0 obj
<< /S /GoTo /D (section.9.9) >>
endobj
596 0 obj
(Fixed-Size, Typed and Shaped Arrays)
endobj
597 0 obj
<< /S /GoTo /D (section.9.10) >>
endobj
600 0 obj
(Multidimensional Arrays)
endobj
601 0 obj
<< /S /GoTo /D (section.9.11) >>
endobj
604 0 obj
(Sorting Arrays or Lists)
endobj
605 0 obj
<< /S /GoTo /D (section.9.12) >>
endobj
608 0 obj
(More Advanced Sorting Techniques)
endobj
609 0 obj
<< /S /GoTo /D (section.9.13) >>
endobj
612 0 obj
(Debugging)
endobj
613 0 obj
<< /S /GoTo /D (section.9.14) >>
endobj
616 0 obj
(Glossary)
endobj
617 0 obj
<< /S /GoTo /D (section.9.15) >>
endobj
620 0 obj
(Exercises)
endobj
621 0 obj
<< /S /GoTo /D (chapter.10) >>
endobj
624 0 obj
(Hashes)
endobj
625 0 obj
<< /S /GoTo /D (section.10.1) >>
endobj
628 0 obj
(A Hash is a Mapping)
endobj
629 0 obj
<< /S /GoTo /D (section.10.2) >>
endobj
632 0 obj
(Common Operations on Hashes)
endobj
633 0 obj
<< /S /GoTo /D (section.10.3) >>
endobj
636 0 obj
(Hash as a Collection of Counters)
endobj
637 0 obj
<< /S /GoTo /D (section.10.4) >>
endobj
640 0 obj
(Looping and Hashes)
endobj
641 0 obj
<< /S /GoTo /D (section.10.5) >>
endobj
644 0 obj
(Reverse Lookup)
endobj
645 0 obj
<< /S /GoTo /D (section.10.6) >>
endobj
648 0 obj
(Testing for Existence)
endobj
649 0 obj
<< /S /GoTo /D (section.10.7) >>
endobj
652 0 obj
(Hash Keys Are Unique)
endobj
653 0 obj
<< /S /GoTo /D (section.10.8) >>
endobj
656 0 obj
(Hashes and Arrays)
endobj
657 0 obj
<< /S /GoTo /D (section.10.9) >>
endobj
660 0 obj
(Memos)
endobj
661 0 obj
<< /S /GoTo /D (section.10.10) >>
endobj
664 0 obj
(Hashes as Dispatch Tables)
endobj
665 0 obj
<< /S /GoTo /D (section.10.11) >>
endobj
668 0 obj
(Global Variables)
endobj
669 0 obj
<< /S /GoTo /D (section.10.12) >>
endobj
672 0 obj
(Debugging)
endobj
673 0 obj
<< /S /GoTo /D (section.10.13) >>
endobj
676 0 obj
(Glossary)
endobj
677 0 obj
<< /S /GoTo /D (section.10.14) >>
endobj
680 0 obj
(Exercises)
endobj
681 0 obj
<< /S /GoTo /D (chapter.11) >>
endobj
684 0 obj
(Case Study: Data Structure Selection)
endobj
685 0 obj
<< /S /GoTo /D (section.11.1) >>
endobj
688 0 obj
(The Ternary Conditional Operator)
endobj
689 0 obj
<< /S /GoTo /D (section.11.2) >>
endobj
692 0 obj
(The given ... when ``Switch'' Statement)
endobj
693 0 obj
<< /S /GoTo /D (section.11.3) >>
endobj
696 0 obj
(Subroutine Named and Optional Parameters)
endobj
697 0 obj
<< /S /GoTo /D (subsection.11.3.1) >>
endobj
700 0 obj
(Named Parameters)
endobj
701 0 obj
<< /S /GoTo /D (subsection.11.3.2) >>
endobj
704 0 obj
(Optional Parameters)
endobj
705 0 obj
<< /S /GoTo /D (section.11.4) >>
endobj
708 0 obj
(Word Frequency Analysis)
endobj
709 0 obj
<< /S /GoTo /D (section.11.5) >>
endobj
712 0 obj
(Random Numbers)
endobj
713 0 obj
<< /S /GoTo /D (section.11.6) >>
endobj
716 0 obj
(Word Histogram)
endobj
717 0 obj
<< /S /GoTo /D (section.11.7) >>
endobj
720 0 obj
(Most Common Words)
endobj
721 0 obj
<< /S /GoTo /D (section.11.8) >>
endobj
724 0 obj
(Optional Parameters)
endobj
725 0 obj
<< /S /GoTo /D (section.11.9) >>
endobj
728 0 obj
(Hash Subtraction)
endobj
729 0 obj
<< /S /GoTo /D (section.11.10) >>
endobj
732 0 obj
(Constructing New Operators)
endobj
733 0 obj
<< /S /GoTo /D (section.11.11) >>
endobj
736 0 obj
(Sets, Bags and Mixes)
endobj
737 0 obj
<< /S /GoTo /D (section.11.12) >>
endobj
740 0 obj
(Random Words)
endobj
741 0 obj
<< /S /GoTo /D (section.11.13) >>
endobj
744 0 obj
(Markov Analysis)
endobj
745 0 obj
<< /S /GoTo /D (section.11.14) >>
endobj
748 0 obj
(Data Structures)
endobj
749 0 obj
<< /S /GoTo /D (section.11.15) >>
endobj
752 0 obj
(Building Your Own Data Structures)
endobj
753 0 obj
<< /S /GoTo /D (subsection.11.15.1) >>
endobj
756 0 obj
(Linked Lists)
endobj
757 0 obj
<< /S /GoTo /D (subsection.11.15.2) >>
endobj
760 0 obj
(Trees)
endobj
761 0 obj
<< /S /GoTo /D (subsection.11.15.3) >>
endobj
764 0 obj
(Binary Heaps)
endobj
765 0 obj
<< /S /GoTo /D (section.11.16) >>
endobj
768 0 obj
(Debugging)
endobj
769 0 obj
<< /S /GoTo /D (section.11.17) >>
endobj
772 0 obj
(Glossary)
endobj
773 0 obj
<< /S /GoTo /D (section.11.18) >>
endobj
776 0 obj
(Exercises: Huffman Coding)
endobj
777 0 obj
<< /S /GoTo /D (subsection.11.18.1) >>
endobj
780 0 obj
(Variable-Length Codes)
endobj
781 0 obj
<< /S /GoTo /D (subsection.11.18.2) >>
endobj
784 0 obj
(The Frequency Table)
endobj
785 0 obj
<< /S /GoTo /D (subsection.11.18.3) >>
endobj
788 0 obj
(Building the Huffman Code)
endobj
789 0 obj
<< /S /GoTo /D (part.2) >>
endobj
792 0 obj
(II Moving Forward)
endobj
793 0 obj
<< /S /GoTo /D (chapter.12) >>
endobj
796 0 obj
(Classes and Objects)
endobj
797 0 obj
<< /S /GoTo /D (section.12.1) >>
endobj
800 0 obj
(Objects, Methods and Object-Oriented Programming)
endobj
801 0 obj
<< /S /GoTo /D (section.12.2) >>
endobj
804 0 obj
(Programmer-Defined Types)
endobj
805 0 obj
<< /S /GoTo /D (section.12.3) >>
endobj
808 0 obj
(Attributes)
endobj
809 0 obj
<< /S /GoTo /D (section.12.4) >>
endobj
812 0 obj
(Creating Methods)
endobj
813 0 obj
<< /S /GoTo /D (section.12.5) >>
endobj
816 0 obj
(Rectangles and Object Composition)
endobj
817 0 obj
<< /S /GoTo /D (section.12.6) >>
endobj
820 0 obj
(Instances as Return Values)
endobj
821 0 obj
<< /S /GoTo /D (section.12.7) >>
endobj
824 0 obj
(Inheritance)
endobj
825 0 obj
<< /S /GoTo /D (subsection.12.7.1) >>
endobj
828 0 obj
(The Pixel Class)
endobj
829 0 obj
<< /S /GoTo /D (subsection.12.7.2) >>
endobj
832 0 obj
(The MovablePoint Class)
endobj
833 0 obj
<< /S /GoTo /D (subsection.12.7.3) >>
endobj
836 0 obj
(Multiple Inheritance: Attractive, but Is It Wise?)
endobj
837 0 obj
<< /S /GoTo /D (section.12.8) >>
endobj
840 0 obj
(Roles and Composition)
endobj
841 0 obj
<< /S /GoTo /D (subsection.12.8.1) >>
endobj
844 0 obj
(Classes and Roles: An Example)
endobj
845 0 obj
<< /S /GoTo /D (subsection.12.8.2) >>
endobj
848 0 obj
(Role Composition and Code Reuse)
endobj
849 0 obj
<< /S /GoTo /D (subsection.12.8.3) >>
endobj
852 0 obj
(Roles, Classes, Objects, and Types)
endobj
853 0 obj
<< /S /GoTo /D (section.12.9) >>
endobj
856 0 obj
(Method Delegation)
endobj
857 0 obj
<< /S /GoTo /D (section.12.10) >>
endobj
860 0 obj
(Polymorphism)
endobj
861 0 obj
<< /S /GoTo /D (section.12.11) >>
endobj
864 0 obj
(Encapsulation)
endobj
865 0 obj
<< /S /GoTo /D (subsection.12.11.1) >>
endobj
868 0 obj
(Private Methods)
endobj
869 0 obj
<< /S /GoTo /D (subsection.12.11.2) >>
endobj
872 0 obj
(Constructing Objects with Private Attributes)
endobj
873 0 obj
<< /S /GoTo /D (section.12.12) >>
endobj
876 0 obj
(Interface and Implementation)
endobj
877 0 obj
<< /S /GoTo /D (section.12.13) >>
endobj
880 0 obj
(Object-Oriented Programming: A Tale)
endobj
881 0 obj
<< /S /GoTo /D (subsection.12.13.1) >>
endobj
884 0 obj
(The Fable of the Shepherd)
endobj
885 0 obj
<< /S /GoTo /D (subsection.12.13.2) >>
endobj
888 0 obj
(The Moral)
endobj
889 0 obj
<< /S /GoTo /D (section.12.14) >>
endobj
892 0 obj
(Debugging)
endobj
893 0 obj
<< /S /GoTo /D (subsection.12.14.1) >>
endobj
896 0 obj
(The Perl 6 Debugger)
endobj
897 0 obj
<< /S /GoTo /D (subsection.12.14.2) >>
endobj
900 0 obj
(Getting Some Help)
endobj
901 0 obj
<< /S /GoTo /D (subsection.12.14.3) >>
endobj
904 0 obj
(Stepping Through the Code)
endobj
905 0 obj
<< /S /GoTo /D (subsection.12.14.4) >>
endobj
908 0 obj
(Stopping at the Right Place with Breakpoints)
endobj
909 0 obj
<< /S /GoTo /D (subsection.12.14.5) >>
endobj
912 0 obj
(Logging Information with Trace Points)
endobj
913 0 obj
<< /S /GoTo /D (subsection.12.14.6) >>
endobj
916 0 obj
(Stepping Through a Regex Match)
endobj
917 0 obj
<< /S /GoTo /D (section.12.15) >>
endobj
920 0 obj
(Glossary)
endobj
921 0 obj
<< /S /GoTo /D (chapter.13) >>
endobj
924 0 obj
(Regexes and Grammars)
endobj
925 0 obj
<< /S /GoTo /D (section.13.1) >>
endobj
928 0 obj
(A Brief Refresher)
endobj
929 0 obj
<< /S /GoTo /D (section.13.2) >>
endobj
932 0 obj
(Declarative Programming)
endobj
933 0 obj
<< /S /GoTo /D (section.13.3) >>
endobj
936 0 obj
(Captures)
endobj
937 0 obj
<< /S /GoTo /D (section.13.4) >>
endobj
940 0 obj
(Named Rules \(a.k.a. Subrules\))
endobj
941 0 obj
<< /S /GoTo /D (section.13.5) >>
endobj
944 0 obj
(Grammars)
endobj
945 0 obj
<< /S /GoTo /D (section.13.6) >>
endobj
948 0 obj
(Grammar Inheritance)
endobj
949 0 obj
<< /S /GoTo /D (section.13.7) >>
endobj
952 0 obj
(Actions Objects)
endobj
953 0 obj
<< /S /GoTo /D (section.13.8) >>
endobj
956 0 obj
(A grammar for Parsing JSON)
endobj
957 0 obj
<< /S /GoTo /D (subsection.13.8.1) >>
endobj
960 0 obj
(The JSON Format)
endobj
961 0 obj
<< /S /GoTo /D (subsection.13.8.2) >>
endobj
964 0 obj
(Our JSON Sample)
endobj
965 0 obj
<< /S /GoTo /D (subsection.13.8.3) >>
endobj
968 0 obj
(Writing the JSON Grammar Step by Step)
endobj
969 0 obj
<< /S /GoTo /D (subsection.13.8.4) >>
endobj
972 0 obj
(The JSON Grammar)
endobj
973 0 obj
<< /S /GoTo /D (subsection.13.8.5) >>
endobj
976 0 obj
(Adding Actions)
endobj
977 0 obj
<< /S /GoTo /D (section.13.9) >>
endobj
980 0 obj
(Inheritance and Mutable Grammars)
endobj
981 0 obj
<< /S /GoTo /D (section.13.10) >>
endobj
984 0 obj
(Debugging)
endobj
985 0 obj
<< /S /GoTo /D (section.13.11) >>
endobj
988 0 obj
(Glossary)
endobj
989 0 obj
<< /S /GoTo /D (section.13.12) >>
endobj
992 0 obj
(Exercise: A Grammar for an Arithmetic Calculator)
endobj
993 0 obj
<< /S /GoTo /D (chapter.14) >>
endobj
996 0 obj
(Functional Programming in Perl)
endobj
997 0 obj
<< /S /GoTo /D (section.14.1) >>
endobj
1000 0 obj
(Higher-Order Functions)
endobj
1001 0 obj
<< /S /GoTo /D (subsection.14.1.1) >>
endobj
1004 0 obj
(A Refresher on Functions as First-Class Objects)
endobj
1005 0 obj
<< /S /GoTo /D (subsection.14.1.2) >>
endobj
1008 0 obj
(Anonymous Subroutines and Lambdas)
endobj
1009 0 obj
<< /S /GoTo /D (subsection.14.1.3) >>
endobj
1012 0 obj
(Closures)
endobj
1013 0 obj
<< /S /GoTo /D (section.14.2) >>
endobj
1016 0 obj
(List Processing and Pipeline Programming)
endobj
1017 0 obj
<< /S /GoTo /D (subsection.14.2.1) >>
endobj
1020 0 obj
(Feed and Backward Feed Operators)
endobj
1021 0 obj
<< /S /GoTo /D (subsection.14.2.2) >>
endobj
1024 0 obj
(The Reduction Metaoperator)
endobj
1025 0 obj
<< /S /GoTo /D (subsection.14.2.3) >>
endobj
1028 0 obj
(The Hyperoperator)
endobj
1029 0 obj
<< /S /GoTo /D (subsection.14.2.4) >>
endobj
1032 0 obj
(The Cross \(X\) and Zip \(Z\) Operators)
endobj
1033 0 obj
<< /S /GoTo /D (subsection.14.2.5) >>
endobj
1036 0 obj
(List Operators, a Summary)
endobj
1037 0 obj
<< /S /GoTo /D (subsection.14.2.6) >>
endobj
1040 0 obj
(Creating New Operators)
endobj
1041 0 obj
<< /S /GoTo /D (section.14.3) >>
endobj
1044 0 obj
(Creating Your Own Map-Like Functions)
endobj
1045 0 obj
<< /S /GoTo /D (subsection.14.3.1) >>
endobj
1048 0 obj
(Custom Versions of map, grep, etc.)
endobj
1049 0 obj
<< /S /GoTo /D (subsection.14.3.2) >>
endobj
1052 0 obj
(Our Own Version of a Sort Function)
endobj
1053 0 obj
<< /S /GoTo /D (subsection.14.3.3) >>
endobj
1056 0 obj
(An Iterator Version of map)
endobj
1057 0 obj
<< /S /GoTo /D (subsection.14.3.4) >>
endobj
1060 0 obj
(An Iterator Version of grep)
endobj
1061 0 obj
<< /S /GoTo /D (section.14.4) >>
endobj
1064 0 obj
(The gather and take Construct)
endobj
1065 0 obj
<< /S /GoTo /D (section.14.5) >>
endobj
1068 0 obj
(Lazy Lists and the Sequence Operator)
endobj
1069 0 obj
<< /S /GoTo /D (subsection.14.5.1) >>
endobj
1072 0 obj
(The Sequence Operator)
endobj
1073 0 obj
<< /S /GoTo /D (subsection.14.5.2) >>
endobj
1076 0 obj
(Infinite Lists)
endobj
1077 0 obj
<< /S /GoTo /D (subsection.14.5.3) >>
endobj
1080 0 obj
(Using an Explicit Generator)
endobj
1081 0 obj
<< /S /GoTo /D (section.14.6) >>
endobj
1084 0 obj
(Currying and the Whatever Operator)
endobj
1085 0 obj
<< /S /GoTo /D (subsection.14.6.1) >>
endobj
1088 0 obj
(Creating a Curried Subroutine)
endobj
1089 0 obj
<< /S /GoTo /D (subsection.14.6.2) >>
endobj
1092 0 obj
(Currying an Existing Subroutine with the assuming Method)
endobj
1093 0 obj
<< /S /GoTo /D (subsection.14.6.3) >>
endobj
1096 0 obj
(Currying with the Whatever Star Parameter)
endobj
1097 0 obj
<< /S /GoTo /D (section.14.7) >>
endobj
1100 0 obj
(Using a Functional Programming Style)
endobj
1101 0 obj
<< /S /GoTo /D (subsection.14.7.1) >>
endobj
1104 0 obj
(The Merge Sort Algorithm)
endobj
1105 0 obj
<< /S /GoTo /D (subsection.14.7.2) >>
endobj
1108 0 obj
(A Non-Functional Implementation of Merge Sort)
endobj
1109 0 obj
<< /S /GoTo /D (subsection.14.7.3) >>
endobj
1112 0 obj
(A Functional Implementation of Merge Sort)
endobj
1113 0 obj
<< /S /GoTo /D (section.14.8) >>
endobj
1116 0 obj
(Debugging)
endobj
1117 0 obj
<< /S /GoTo /D (section.14.9) >>
endobj
1120 0 obj
(Glossary)
endobj
1121 0 obj
<< /S /GoTo /D (section.14.10) >>
endobj
1124 0 obj
(Exercise: Quick Sort)
endobj
1125 0 obj
<< /S /GoTo /D (chapter.15) >>
endobj
1128 0 obj
(Some Final Advice)
endobj
1129 0 obj
<< /S /GoTo /D (section.15.1) >>
endobj
1132 0 obj
(Make it Clear, Keep it Simple)
endobj
1133 0 obj
<< /S /GoTo /D (section.15.2) >>
endobj
1136 0 obj
(Dos and Don'ts)
endobj
1137 0 obj
<< /S /GoTo /D (section.15.3) >>
endobj
1140 0 obj
(Use Idioms)
endobj
1141 0 obj
<< /S /GoTo /D (section.15.4) >>
endobj
1144 0 obj
(What's Next?)
endobj
1145 0 obj
<< /S /GoTo /D (appendix.A) >>
endobj
1148 0 obj
(Solutions to the Exercises)
endobj
1149 0 obj
<< /S /GoTo /D (section.A.1) >>
endobj
1152 0 obj
(Exercises of Chapter 3: Functions and Subroutines)
endobj
1153 0 obj
<< /S /GoTo /D (subsection.A.1.1) >>
endobj
1156 0 obj
(Exercise 3.1: Subroutine right-justify \(p. 46\))
endobj
1157 0 obj
<< /S /GoTo /D (subsection.A.1.2) >>
endobj
1160 0 obj
(Exercise 3.2: Subroutine do-twice \(p. 46\))
endobj
1161 0 obj
<< /S /GoTo /D (subsection.A.1.3) >>
endobj
1164 0 obj
(Exercise 3.3: Subroutine print-grid \(p. 47\))
endobj
1165 0 obj
<< /S /GoTo /D (section.A.2) >>
endobj
1168 0 obj
(Exercises of Chapter 4: Conditionals and Recursion)
endobj
1169 0 obj
<< /S /GoTo /D (subsection.A.2.1) >>
endobj
1172 0 obj
(Subroutine do-n-times, Exercise Suggested in Section 4.12 \(p. 61\))
endobj
1173 0 obj
<< /S /GoTo /D (subsection.A.2.2) >>
endobj
1176 0 obj
(Exercise 4.1: Days, Hours, Minutes, and Seconds \(p. 65\))
endobj
1177 0 obj
<< /S /GoTo /D (subsection.A.2.3) >>
endobj
1180 0 obj
(Exercise 4.2: Fermat's Theorem \(p. 66\))
endobj
1181 0 obj
<< /S /GoTo /D (subsection.A.2.4) >>
endobj
1184 0 obj
(Exercise 4.3: Is it a Triangle? \(p. 66\))
endobj
1185 0 obj
<< /S /GoTo /D (subsection.A.2.5) >>
endobj
1188 0 obj
(Exercise 4.4: The Fibonacci Numbers \(p. 66\))
endobj
1189 0 obj
<< /S /GoTo /D (subsection.A.2.6) >>
endobj
1192 0 obj
(Exercise 4.5: The recurse Subroutine \(p. 67\))
endobj
1193 0 obj
<< /S /GoTo /D (section.A.3) >>
endobj
1196 0 obj
(Exercises of Chapter 5: Fruitful Functions)
endobj
1197 0 obj
<< /S /GoTo /D (subsection.A.3.1) >>
endobj
1200 0 obj
(Compare, exercise at the end of Section 5.1 \(p. 70\))
endobj
1201 0 obj
<< /S /GoTo /D (subsection.A.3.2) >>
endobj
1204 0 obj
(Hypotenuse, exercise at the end of Section 5.2 \(p. 72\))
endobj
1205 0 obj
<< /S /GoTo /D (subsection.A.3.3) >>
endobj
1208 0 obj
(Chained Relational Operators\(in Section 5.4\))
endobj
1209 0 obj
<< /S /GoTo /D (subsection.A.3.4) >>
endobj
1212 0 obj
(The Ackermann Function \(Exercise 5.2\))
endobj
1213 0 obj
<< /S /GoTo /D (subsection.A.3.5) >>
endobj
1216 0 obj
(Palindromes \(Exercise 5.3\))
endobj
1217 0 obj
<< /S /GoTo /D (subsection.A.3.6) >>
endobj
1220 0 obj
(Powers \(Exercise 5.4\))
endobj
1221 0 obj
<< /S /GoTo /D (subsection.A.3.7) >>
endobj
1224 0 obj
(Finding the GCD of Two Numbers, Exercise 5.5 \(p. 84\))
endobj
1225 0 obj
<< /S /GoTo /D (section.A.4) >>
endobj
1228 0 obj
(Exercises of Chapter 6 \(Iteration\))
endobj
1229 0 obj
<< /S /GoTo /D (subsection.A.4.1) >>
endobj
1232 0 obj
(Exercise 6.1: Square Root \(p. 96\))
endobj
1233 0 obj
<< /S /GoTo /D (subsection.A.4.2) >>
endobj
1236 0 obj
(Exercise 6.2: Pi Estimate \(p. 96\))
endobj
1237 0 obj
<< /S /GoTo /D (section.A.5) >>
endobj
1240 0 obj
(Exercises of Chapter 7 \(Strings\))
endobj
1241 0 obj
<< /S /GoTo /D (subsection.A.5.1) >>
endobj
1244 0 obj
(Exercise in Section 7.3: String Traversal \(p. 104\))
endobj
1245 0 obj
<< /S /GoTo /D (subsection.A.5.2) >>
endobj
1248 0 obj
(Exercise in Section 7.3: The Ducklings \(p. 104\))
endobj
1249 0 obj
<< /S /GoTo /D (subsection.A.5.3) >>
endobj
1252 0 obj
(Exercise in Section 7.3: Counting the Letters of a String \(p. 104\))
endobj
1253 0 obj
<< /S /GoTo /D (subsection.A.5.4) >>
endobj
1256 0 obj
(Section 7.5: Simulating a Regex with a Loop \(p. 106\))
endobj
1257 0 obj
<< /S /GoTo /D (subsection.A.5.5) >>
endobj
1260 0 obj
(Exercises in Subsection 7.7.8: Regex Exercises \(p. 115\))
endobj
1261 0 obj
<< /S /GoTo /D (subsection.A.5.6) >>
endobj
1264 0 obj
(Exercise in Section 7.10: is-reverse Subroutine \(p. 122\))
endobj
1265 0 obj
<< /S /GoTo /D (subsection.A.5.7) >>
endobj
1268 0 obj
(Exercise 7.1: Counting Letters \(p. 123\))
endobj
1269 0 obj
<< /S /GoTo /D (subsection.A.5.8) >>
endobj
1272 0 obj
(Exercise 7.2: Lowercase Letters \(p. 123\))
endobj
1273 0 obj
<< /S /GoTo /D (subsection.A.5.9) >>
endobj
1276 0 obj
(Exercise 7.3: Caesar's Cipher \(p. 125\))
endobj
1277 0 obj
<< /S /GoTo /D (section.A.6) >>
endobj
1280 0 obj
(Exercises of Chapter 8 \(Word Play\))
endobj
1281 0 obj
<< /S /GoTo /D (subsection.A.6.1) >>
endobj
1284 0 obj
(Exercise 8.7: Consecutive Double Letters \(p. 136\))
endobj
1285 0 obj
<< /S /GoTo /D (subsection.A.6.2) >>
endobj
1288 0 obj
(Exercise 8.8: Palindromes in Odometers \(p. 137\))
endobj
1289 0 obj
<< /S /GoTo /D (subsection.A.6.3) >>
endobj
1292 0 obj
(Exercise 8.9: Palindromes in Ages \(p. 137\))
endobj
1293 0 obj
<< /S /GoTo /D (section.A.7) >>
endobj
1296 0 obj
(Exercises of Chapter 9 \(Arrays and Lists\))
endobj
1297 0 obj
<< /S /GoTo /D (subsection.A.7.1) >>
endobj
1300 0 obj
(Exercise of Section 9.4: Implementing a Queue \(p. 145\))
endobj
1301 0 obj
<< /S /GoTo /D (subsection.A.7.2) >>
endobj
1304 0 obj
(Exercise of Section 9.5: Other Ways to Modify an Array \(p. 147\))
endobj
1305 0 obj
<< /S /GoTo /D (subsection.A.7.3) >>
endobj
1308 0 obj
(Exercise of Section 9.8: Mapping and Filtering the Elements of a List \(p. 154\))
endobj
1309 0 obj
<< /S /GoTo /D (subsection.A.7.4) >>
endobj
1312 0 obj
(Exercise of Section 9.12: Advanced Sorting Techniques \(p. 160\))
endobj
1313 0 obj
<< /S /GoTo /D (subsection.A.7.5) >>
endobj
1316 0 obj
(Exercise 9.1: Nested Sum \(p. 162\))
endobj
1317 0 obj
<< /S /GoTo /D (subsection.A.7.6) >>
endobj
1320 0 obj
(Exercise 9.2: Cumulative Sum \(p. 162\))
endobj
1321 0 obj
<< /S /GoTo /D (subsection.A.7.7) >>
endobj
1324 0 obj
(Exercise 9.3: Middle \(p. 162\))
endobj
1325 0 obj
<< /S /GoTo /D (subsection.A.7.8) >>
endobj
1328 0 obj
(Exercise 9.4: Chop \(p. 162\))
endobj
1329 0 obj
<< /S /GoTo /D (subsection.A.7.9) >>
endobj
1332 0 obj
(Exercise 9.5: Subroutine is-sorted \(p. 163\))
endobj
1333 0 obj
<< /S /GoTo /D (subsection.A.7.10) >>
endobj
1336 0 obj
(Exercise 9.6: Subroutine is-anagram \(p. 163\))
endobj
1337 0 obj
<< /S /GoTo /D (subsection.A.7.11) >>
endobj
1340 0 obj
(Exercise 9.7: Subroutine has-duplicates \(p. 163\))
endobj
1341 0 obj
<< /S /GoTo /D (subsection.A.7.12) >>
endobj
1344 0 obj
(Exercise 9.8: Simulating the Birthday Paradox \(p. 163\))
endobj
1345 0 obj
<< /S /GoTo /D (subsection.A.7.13) >>
endobj
1348 0 obj
(Exercise 9.9: Comparing push and unshift \(p. 163\))
endobj
1349 0 obj
<< /S /GoTo /D (subsection.A.7.14) >>
endobj
1352 0 obj
(Exercise 9.10: Bisection Search in a List \(p. 163\))
endobj
1353 0 obj
<< /S /GoTo /D (subsection.A.7.15) >>
endobj
1356 0 obj
(Exercise 9.11: Reverse Pairs \(p. 164\))
endobj
1357 0 obj
<< /S /GoTo /D (subsection.A.7.16) >>
endobj
1360 0 obj
(Exercise 9.12: Interlocking Words \(p. 164\))
endobj
1361 0 obj
<< /S /GoTo /D (section.A.8) >>
endobj
1364 0 obj
(Exercises of Chapter 10 \(Hashes\))
endobj
1365 0 obj
<< /S /GoTo /D (subsection.A.8.1) >>
endobj
1368 0 obj
(Exercise at the end of Section 10.1: A hash Is a Mapping \(p. 167\))
endobj
1369 0 obj
<< /S /GoTo /D (subsection.A.8.2) >>
endobj
1372 0 obj
(Exercise 10.1: Storing the Word List into a Hash \(p. 181\))
endobj
1373 0 obj
<< /S /GoTo /D (subsection.A.8.3) >>
endobj
1376 0 obj
(Exercise 10.2: Memoizing the Ackermann Function \(p. 181\))
endobj
1377 0 obj
<< /S /GoTo /D (subsection.A.8.4) >>
endobj
1380 0 obj
(Exercise 10.3: Finding Duplicates with a Hash \(p. 181\))
endobj
1381 0 obj
<< /S /GoTo /D (subsection.A.8.5) >>
endobj
1384 0 obj
(Exercise 10.4: Rotate Pairs \(p. 181\))
endobj
1385 0 obj
<< /S /GoTo /D (subsection.A.8.6) >>
endobj
1388 0 obj
(Exercise 10.5: Homophones \(p. 181\))
endobj
1389 0 obj
<< /S /GoTo /D (section.A.9) >>
endobj
1392 0 obj
(Exercises of Chapter 11)
endobj
1393 0 obj
<< /S /GoTo /D (subsection.A.9.1) >>
endobj
1396 0 obj
(Exercise in Section 11.2: the given ... when Switch Statement \(p. 185\))
endobj
1397 0 obj
<< /S /GoTo /D (subsection.A.9.2) >>
endobj
1400 0 obj
(Exercise in Section 11.10: Constructing New Operators \(p. 194\))
endobj
1401 0 obj
<< /S /GoTo /D (subsection.A.9.3) >>
endobj
1404 0 obj
(Exercise in Section 11.11: Sets, Bags and Mixes \(p. 196\))
endobj
1405 0 obj
<< /S /GoTo /D (subsection.A.9.4) >>
endobj
1408 0 obj
(Exercise in Section 11.12: Random Words \(p. 197\))
endobj
1409 0 obj
<< /S /GoTo /D (subsection.A.9.5) >>
endobj
1412 0 obj
(Exercise in Section 11.13: Markov Analysis \(p. 199\))
endobj
1413 0 obj
<< /S /GoTo /D (subsection.A.9.6) >>
endobj
1416 0 obj
(Exercises on the Huffman Code in Section 11.18 \(p. 207\))
endobj
1417 0 obj
<< /S /GoTo /D (section.A.10) >>
endobj
1420 0 obj
(Exercises of Chapter 13: Regexes and Grammars)
endobj
1421 0 obj
<< /S /GoTo /D (subsection.A.10.1) >>
endobj
1424 0 obj
(Exercise in Section 13.1: Getting the February Dates Right \(p. 254\))
endobj
1425 0 obj
<< /S /GoTo /D (subsection.A.10.2) >>
endobj
1428 0 obj
(Exercise 13.12 \(p. 269\): A Grammar for an Arithmetic Calculator)
endobj
1429 0 obj
<< /S /GoTo /D (section.A.11) >>
endobj
1432 0 obj
(Exercises of Chapter 14: Functional Programming)
endobj
1433 0 obj
<< /S /GoTo /D (subsection.A.11.1) >>
endobj
1436 0 obj
(Exercise 14.10: Making a Functional Implementation of Quick Sort\))
endobj
1437 0 obj
<< /S /GoTo /D [1438 0 R /Fit] >>
endobj
1440 0 obj <<
/Length 208
/Filter /FlateDecode
>>
stream
x�M�AKA���+r܅n��΄�Ui)Ń��E<H;�X�-�)�w�����r��
������x#h� ํ�y<v���}H�nܽ������.xOΣ1�Ga��v�V�L:���c��U���u��4����i,�\������tB�3���]T�Wr}�%O�J�����4����A�~I��}�J��]>~�g
�bkֱ���Jt
endstream
endobj
1438 0 obj <<
/Type /Page
/Contents 1440 0 R
/Resources 1439 0 R
/MediaBox [0 0 612 792]
/Parent 1444 0 R
>> endobj
1441 0 obj <<
/D [1438 0 R /XYZ 128.6 732.955 null]
>> endobj
1442 0 obj <<
/D [1438 0 R /XYZ 129.6 705.983 null]
>> endobj
1439 0 obj <<
/Font << /F19 1443 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1447 0 obj <<
/Length 8
/Filter /FlateDecode
>>
stream
x�
endstream
endobj
1446 0 obj <<
/Type /Page
/Contents 1447 0 R
/Resources 1445 0 R
/MediaBox [0 0 612 792]
/Parent 1444 0 R
>> endobj
1448 0 obj <<
/D [1446 0 R /XYZ 85.4 732.955 null]
>> endobj
1445 0 obj <<
/ProcSet [ /PDF ]
>> endobj
1451 0 obj <<
/Length 318
/Filter /FlateDecode
>>
stream
x�m��N�0��{�[��8M���`���&�� ՚�e]��T�ޞ�.B��8�~��"�]ߣe���B�l�$J@m��"�
�ee���D(m\WS��l5�I�g<A���%�����R�%�������m{�������\��_�Y�Z��0��A�h�-���:�ˢ�U�\��-F��u}(Q��uVe���2Z0�j�<Q��h�]UR��6�*�ĭ��D�4�/m���ȱ�%e7u�&/�x�wM��`�`��`ͤ�@�?X[��n����Y.����|�g�g�2?L���Ϸ��;�G��2�}�3��
endstream
endobj
1450 0 obj <<
/Type /Page
/Contents 1451 0 R
/Resources 1449 0 R
/MediaBox [0 0 612 792]
/Parent 1444 0 R
>> endobj
1452 0 obj <<
/D [1450 0 R /XYZ 128.6 732.955 null]
>> endobj
1449 0 obj <<
/Font << /F19 1443 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1457 0 obj <<
/Length 781
/Filter /FlateDecode
>>
stream
xڭUˎ�0��Wd�Jĉ�<gW�$4�
X���X��U�v��s��T- 6�s���>��� h��H��+/OI�EJ"敵�տ3�㠶�],��o,�xc���:���Ƽhy\QJ�W�<�����/����ndW����y+H��[T^�����R�����bH)�Y���|vbl7�av�v�A^�̏=IY��G��k<#줝�P� �^��2�8f�W�;�����F�+Hے�8M�Z�vP����BסШ7�j�hh[����T�~J����Z���F3 ��P+�e�S'��L��P7zď�Er[�d���ɢR�CN"wI�Ozg�)^?�J���y俴�jQ�f�� T'6�����^������#qZ �lk��v�"X$e�j�P*�� �6��n��*HR_W!��z��^�:-8�����,(\ee��8� ���J��0����o���9�Ƙg����!%E���H%%<��Z_�����V9�<�������$���/He48��DJ��%��D�뇝��^�\��8a��h�?����v+ƅ�\�8y#+�K=�RXW��<�9@M!g�5���(P0o; ?��'h7� ���V�p��\X�ú�����T8I%f�����i�4x�l��k2a��<�!��v�r+�Q��VõBB3N�C�����Out����j�̦����pl�pA���l&���Fh�8J���x�[e���TVA��#(��_(�ۃ�$�~i���wr��I�澼� 2��
endstream
endobj
1456 0 obj <<
/Type /Page
/Contents 1457 0 R
/Resources 1455 0 R
/MediaBox [0 0 612 792]
/Parent 1444 0 R
/Annots [ 1453 0 R 1460 0 R 1454 0 R 1461 0 R ]
>> endobj
1453 0 obj <<
/Type /Annot
/Border[0 0 1]/H/I/C[0 1 1]
/Rect [457.873 614.262 483.396 625.27]
/Subtype/Link/A<</Type/Action/S/URI/URI(http://creativecommons.org/licenses/by-nc/3.0/)>>
>> endobj
1460 0 obj <<
/Type /Annot
/Border[0 0 1]/H/I/C[0 1 1]
/Rect [85.404 603.62 280.849 613.83]
/Subtype/Link/A<</Type/Action/S/URI/URI(http://creativecommons.org/licenses/by-nc/3.0/)>>
>> endobj
1454 0 obj <<
/Type /Annot
/Border[0 0 1]/H/I/C[0 1 1]
/Rect [311.981 542.884 483.396 553.493]
/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/LaurentRosenfeld/thinkperl6/)>>
>> endobj
1461 0 obj <<
/Type /Annot
/Border[0 0 1]/H/I/C[0 1 1]
/Rect [85.404 531.843 139.164 542.053]
/Subtype/Link/A<</Type/Action/S/URI/URI(https://github.com/LaurentRosenfeld/thinkperl6/)>>
>> endobj
1458 0 obj <<
/D [1456 0 R /XYZ 85.4 732.955 null]
>> endobj
1455 0 obj <<
/Font << /F19 1443 0 R /F25 1459 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1466 0 obj <<
/Length 1797
/Filter /FlateDecode
>>
stream
x�uXK��8��W�m=�L�wl�l���P,�{Pl%VDZ��<����K�3uO�(��H�#��?o��4�l+��wIZoʻ2N7iV�=�w�D_G�W�����Ϗ������eZ�p|�X��NX��}�F�o�Q�?fIy+c'5z&�G�=M^�<;��I�è�Gs�D�A>�_(����z�*y��p��Ao�;�x�l�ς�'ɦ.
�^6ߩ]�L�<�i3�
��8���i���u�e���/�09��#�V�r4�����Gg ��> �<��q)�Ӟ���z��~c��{\;�3�%�<:���p2t[��C��̡��f1D�����Y�&
`.�Z�����ٿ@�#�
�^;�[������cGqT>�H&"q�|Fa�"�@����Yg�L`��x���'q��S� �6�����9[�I�BV��Q����r�Sч��`���ODk����c�7��|�����h�Ο�̗���հ��@a��hG���7at</<v����"�m�_�x��2�h]��������JLM==4��ҭ���4&�_�}Ϻ�v�j� �a�J�M����PQoҤa��2���������]E�,��i�L���#���@U8�y�s���#A<���
�o��Z5���HQ�ǵ�,�� �d[��|M�A��ּEPV�#�n���J��eM��Ž��"���`�6�t�uV��מ.i$��n�9���:;��(�Th_��KP�8H���5N���zw�a������U4pN��8��rk��Ŭl�`��������P� ^%f9�+9*�9q�~X9Y��!�i^,j".��nn�o� {V3`����'r�;y�<��W@�8^0]�f)�� ��`�Ur�(.-Yn����h��E�J@&�!��r}a�RtÐh�+u@n��W���VF��¨e�DS��x�2�>Q�߳�_EÊ�.g[�r�X˙禝���mC9���b�DO^,/o���Ri��J�P��:r=B������x�3�5��ȶ�|���\���%���Zj}%��ɺ��`�Ñj6K�� _�R����t����E¡����ɭv7�%�F�t���7"
�}k��(]��Q=�n;���{�;x��_��}�KL��8"�qڑ�m�76ӈ�d����&ϳ�%iU`\�4�Z��/+Ĥ͔�A���g�������Z!9�h[�?�hX�;���njp
�8ϭ�1'V,'����HGU�@����ò��u=)ŋ=�j��"�J+�j��b<�,�7�t:�%2oܴ('!�� ����@�Йi��l�b��t8h�2�C#�iX�AMr�W�<�1<H���m�x�* g���[��+���YB���7Grr��d��2��� �V�]e��x�zg�`��l�`��7���fU�U�dt^��4�C <��X�}۲�45 ��5��t��Y�{���2�p�,&�/逴�Ɉk,Q;5�l���,�+��8}���AS��EH���$첲B��U�7
�N�h���]�N�(��I=��m��l�E=oڥ�%��v��LƳ��[����~ayK�O>�>��,}\�]�X'���d�f�����qxr#�NNg ��57qF����)�Y����^º>>�[�A�n�����q��
}6$���<�����]�7�+�[��*�|�ьSi~���Z0Q���N�ڙS���u�>��&K]�m�(���ҋ�Tn
�p�D���w}�IE�B[�����;��
endstream
endobj
1465 0 obj <<
/Type /Page
/Contents 1466 0 R
/Resources 1464 0 R
/MediaBox [0 0 612 792]
/Parent 1444 0 R
>> endobj
1467 0 obj <<
/D [1465 0 R /XYZ 128.6 732.955 null]
>> endobj
2 0 obj <<
/D [1465 0 R /XYZ 129.6 705.983 null]
>> endobj
1469 0 obj <<
/D [1465 0 R /XYZ 129.6 410.806 null]
>> endobj
1464 0 obj <<
/Font << /F71 1468 0 R /F19 1443 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
1477 0 obj <<
/Length 3197
/Filter /FlateDecode
>>
stream
xڭYKs�F��W�j��L3xgO�کȕd�k���0F$V ��!Z��ۯ@�rr��==����������S���<����a�%~�Ju��Y��/W�zO��:�@y�ؙ�`�뵎/��qx�:�`
{���ǫ�W�_�U ?%+����*�W���J���
�0�VG�_�y�z���_W�"���0J�$P��~�2�~gY��~h�gn��vU��m�>�X7߫|��`����Bū�50Z�<\U)�hǮ�̤E�'��W�~p��Ze����������t�[�3�Y;��w��k3ؒ{�k��<S���������)v�7�n��6��R��㘷E���7�����=7MS
�
UQ[a�
?ٮf*A�#=O�{C��Ժo�:v�0X�k��`�L�f�X���9��j��N�������R?NY�+��@�R]8ٵ�V1��b.�ڭ�3��ȃ��i�G�����m1�A��x(ʁ?=��0p���5 �6%sP��Ё��ӷ{{��E����Ѣ�hd0|��� @
i�`���P�T{{�<S�6�ugz��y���3���=C��x�aB& };Sr�݀!�
�X�TZc��U!��m�4v#����й���]���1��h���7���̣����x���s?NfU��1���*TD�"8���a�t�}��i�f���J��lHf��ܪU�X��G#�D�f��}��ظ�:�k�IP��>Vu�+ �d�ؔ�C�`x�O�^
���h�'=���T�H��̛���SV2�i��[�g�y�ٯ�/m��;˼Ͷ��7l5��:��w�/��2E��;aT��0��$ Zr�y恓��3%�����;!7��.��co����0�Iw?"������u�6�<��'мk`ˮ)�����(��b��l�|��:�e.�G�����b8� R���0p�d�&^�)��$��[��f�?.�b�(���zŃ���G�Ŷ3�=�
��$�~z����`�\���01�,Yo@~]=ʈS��7��ڹ=�`�QR���$bP��?���f1�h�����OC�4J�s�����diފ��B ��6�D��* n{/η�_
piཷ�%D@- rQ ��*{�S��¹Y��D�3cB��+��ej±�����s�_�������oz��i���Q�g �A�Z�<bZQާg����0�>[���eE��4(�`�h�@C��,�0���y� ���2�u��0�C
��jʾ�� �ٲ�����J�hu��~<Z��0'��-��M|zB4d���X�Q�R�v�o+%Y(%�������c�Ƌ���C��� �s��fm��{"Ѯ��m'=� �%�����<���*������������9��<p�,f
�Ԥ����Aړ��K�'��ˮ��� o�,O�!�''���mЌ� '|�s����0&��[����K+�����@ �'Ȧ��0q�
)�|�a�w���je� )�Y��%u#���XS�ƖKݴx+#̣=��/Z������Y�0:��C�|�(F����E�/� ��4sЇ���\A.�yw��D�pnI����pSZ�#%���u��?�]{��:}U
�ǚ�& �~�B
"5�v��A�\o ��y4ݞ�<ں��7-`�@����O���=2q���}� ���!�B"�Q)�s�iF�7��4I���c?��HB�.@=-C^�\*5���L�]�`�:S��y5M��y��I� �n������8�n�����RQ�<@� DKn��0Յ���_�>�s_�H��4� I�mƁ�M����)��Z6�J<��a4Q~�%�v���[F���V~���=�z��b �]� [���G������#盕H���l!
&���G��� =�`����z 7(H8��v�#��j��Ƣ�1-�m:.�T0/#� k���0`P� |#�.!&eZ�a���>[!��%X�\�>�*����*��B@.fm�W�����k�EW��]#`�v\���34"j��ȩ�EB�uѿ\]�kR�TR�` �y9U���H�3U���j���j���~l��P�T�t�]�l>W���x�<��%#������Q`P:X�o�n}Ϫ>/₽���߫���l�E�*w��/�K~O��Ǫ���ڊ�_\�Ʉ��} ���ȗX�� �(�����:������"�����wwlV���*ѯF���R�<t��W�J��>b3!���P[4fS�K��Qq�/A��^�����1 ��0�5�j�� E��뿮��u2`��n�W�+�w� s�}�d~W<6����o[��n;e� oٚ73q)f�H��뒻0�?2W�Iw�2�e.'l j�d���n⁽�0�vZV�psJۃu����qt��ғ�(�+� ��xb>\h@Y^P����%�� �w\�D��^O�2hr+�`c}oe-7� �t� tag�S���|��]�U#�;�:�Y�8����vd�A�R3�+.:q�
b˱w �x���W���(b��AB�ubH�;�Ɉi���P@K.�ĩ<-�/��f_���W�cQi�*����Kc�̓?.���F�}lw��g���C�~2�C�����ϧ�|������x�SqF�W:����Ӕ�6O}
��؏�������ePt���2공g�c���N���8�� �a7��nn`�~��B�Ç\tS\����x7�����=zHrA$���%�2o�h��`���3}~��g�{����g�v��̡_�m�.��Jk@��;�F:���� ���$���>���v¿��d����O���@ 7Ň��P_,.� �3�J9">