3 << /S /GoTo /D (1.0) >>
9 << /S /GoTo /D (2.0) >>
15 << /S /GoTo /D (3.0) >>
21 << /S /GoTo /D (4.0) >>
27 << /S /GoTo /D (4.1.1) >>
33 << /S /GoTo /D (4.2.1) >>
39 << /S /GoTo /D (5.0) >>
42 (Chapter 1. Introduction)
45 << /S /GoTo /D (5.3.1) >>
48 (What is Functional Programming?)
51 << /S /GoTo /D (5.3.1.2) >>
57 << /S /GoTo /D (5.3.2.2) >>
60 (Pure FP and Plumbing)
63 << /S /GoTo /D (6.0) >>
66 (Chapter 2. Hello World)
69 << /S /GoTo /D (6.4.1) >>
72 (Assembling the Hello World Program)
75 << /S /GoTo /D (6.5.1) >>
81 << /S /GoTo /D (6.6.1) >>
87 << /S /GoTo /D (6.6.3.2) >>
93 << /S /GoTo /D (6.6.4.2) >>
99 << /S /GoTo /D (6.6.5.2) >>
102 (Tail Recursion as Iteration)
105 << /S /GoTo /D (6.6.6.2) >>
108 (Using the Fold Functions)
111 << /S /GoTo /D (6.6.7.2) >>
114 (Tail Recursion for Finite State Machines)
117 << /S /GoTo /D (6.7.1) >>
120 (The getopt Programs)
123 << /S /GoTo /D (6.7.8.2) >>
129 << /S /GoTo /D (6.7.9.2) >>
135 << /S /GoTo /D (6.7.10.2) >>
138 (Getopt with a Hash Table)
141 << /S /GoTo /D (6.7.11.2) >>
147 << /S /GoTo /D (7.0) >>
150 (Chapter 3. The Basis Library)
153 << /S /GoTo /D (7.8.1) >>
159 << /S /GoTo /D (7.9.1) >>
165 << /S /GoTo /D (7.10.1) >>
171 << /S /GoTo /D (7.11.1) >>
177 << /S /GoTo /D (7.12.1) >>
183 << /S /GoTo /D (7.12.12.2) >>
189 << /S /GoTo /D (7.12.13.2) >>
195 << /S /GoTo /D (7.12.14.2) >>
201 << /S /GoTo /D (7.13.1) >>
207 << /S /GoTo /D (7.14.1) >>
213 << /S /GoTo /D (7.15.1) >>
219 << /S /GoTo /D (7.16.1) >>
225 << /S /GoTo /D (7.17.1) >>
228 (The Portable I/O API)
231 << /S /GoTo /D (7.18.1) >>
234 (The Portable OS API)
237 << /S /GoTo /D (7.18.15.2) >>
243 << /S /GoTo /D (7.18.16.2) >>
249 << /S /GoTo /D (7.18.17.2) >>
255 << /S /GoTo /D (7.18.18.2) >>
261 << /S /GoTo /D (7.18.19.2) >>
267 << /S /GoTo /D (7.19.1) >>
273 << /S /GoTo /D (7.19.20.2) >>
279 << /S /GoTo /D (7.19.21.2) >>
285 << /S /GoTo /D (7.19.22.2) >>
291 << /S /GoTo /D (7.19.23.2) >>
297 << /S /GoTo /D (7.19.24.2) >>
303 << /S /GoTo /D (7.19.25.2) >>
306 (Posix.Process and Posix.Signal)
309 << /S /GoTo /D (7.19.26.2) >>
315 << /S /GoTo /D (7.19.27.2) >>
321 << /S /GoTo /D (8.0) >>
324 (Chapter 4. The SML/NJ Extensions)
327 << /S /GoTo /D (8.20.1) >>
333 << /S /GoTo /D (8.20.28.2) >>
336 (Unsafe Vectors and Arrays)
339 << /S /GoTo /D (8.20.29.2) >>
342 (Memory Representation Information)
345 << /S /GoTo /D (8.20.30.2) >>
351 << /S /GoTo /D (8.20.31.2) >>
354 (Miscellaneous Unsafe Operations)
357 << /S /GoTo /D (8.21.1) >>
363 << /S /GoTo /D (8.22.1) >>
369 << /S /GoTo /D (8.22.32.2) >>
375 << /S /GoTo /D (8.22.33.2) >>
381 << /S /GoTo /D (8.22.34.2) >>
384 (Garbage Collection Control)
387 << /S /GoTo /D (8.22.35.2) >>
390 (Execution Time Profiling)
393 << /S /GoTo /D (8.22.36.2) >>
396 (Operating System Information)
399 << /S /GoTo /D (8.22.37.2) >>
405 << /S /GoTo /D (8.22.38.2) >>
411 << /S /GoTo /D (8.22.39.2) >>
414 (The Exception History List)
417 << /S /GoTo /D (8.23.1) >>
423 << /S /GoTo /D (8.23.40.2) >>
426 (The Generic Socket Types)
429 << /S /GoTo /D (8.23.41.2) >>
432 (The Specific Socket Types)
435 << /S /GoTo /D (8.23.42.2) >>
441 << /S /GoTo /D (8.23.43.2) >>
444 (A Simple TCP Client)
447 << /S /GoTo /D (8.23.44.2) >>
450 (A Simple TCP Server)
453 << /S /GoTo /D (8.23.45.2) >>
456 (Servers with Multiple Connections)
459 << /S /GoTo /D (9.0) >>
462 (Chapter 5. The Utility Libraries)
465 << /S /GoTo /D (9.24.1) >>
471 << /S /GoTo /D (9.24.46.2) >>
474 (Trees, Maps and Sets)
477 << /S /GoTo /D (9.24.47.2) >>
483 << /S /GoTo /D (9.24.48.2) >>
489 << /S /GoTo /D (9.24.49.2) >>
495 << /S /GoTo /D (9.24.50.2) >>
501 << /S /GoTo /D (9.25.1) >>
507 << /S /GoTo /D (9.25.51.2) >>
510 (Sorting and Searching)
513 << /S /GoTo /D (9.25.52.2) >>
519 << /S /GoTo /D (9.25.53.2) >>
522 (Miscellaneous Utilities)
525 << /S /GoTo /D (9.26.1) >>
528 (Regular Expressions)
531 << /S /GoTo /D (9.26.54.2) >>
534 (The Pieces of the Library)
537 << /S /GoTo /D (9.26.55.2) >>
543 << /S /GoTo /D (9.26.56.2) >>
546 (Matching with a Back-End)
549 << /S /GoTo /D (9.27.1) >>
555 << /S /GoTo /D (9.27.57.2) >>
561 << /S /GoTo /D (9.27.58.2) >>
567 << /S /GoTo /D (9.27.59.2) >>
573 << /S /GoTo /D (9.27.60.2) >>
579 << /S /GoTo /D (9.27.61.2) >>
585 << /S /GoTo /D (10.0) >>
588 (Chapter 6. Concurrency)
591 << /S /GoTo /D (10.28.1) >>
597 << /S /GoTo /D (10.29.1) >>
603 << /S /GoTo /D (10.30.1) >>
609 << /S /GoTo /D (10.30.62.2) >>
615 << /S /GoTo /D (10.30.63.2) >>
621 << /S /GoTo /D (10.30.64.2) >>
627 << /S /GoTo /D (10.30.65.2) >>
630 (Synchronous Variables)
633 << /S /GoTo /D (10.30.66.2) >>
639 << /S /GoTo /D (10.31.1) >>
645 << /S /GoTo /D (10.32.1) >>
648 (Some Tips on Using CML)
651 << /S /GoTo /D (10.33.1) >>
654 (Getting the Counter's Value)
657 << /S /GoTo /D (10.34.1) >>
660 (Getting the Value through an Event)
663 << /S /GoTo /D (10.35.1) >>
666 (Getting the Value with a Time-Out)
669 << /S /GoTo /D (10.36.1) >>
675 << /S /GoTo /D (10.37.1) >>
681 << /S /GoTo /D (10.38.1) >>
684 (Semaphores via Synchronous Variables)
687 << /S /GoTo /D (11.0) >>
690 (Chapter 7. Under the Hood)
693 << /S /GoTo /D (11.39.1) >>
699 << /S /GoTo /D (11.39.67.2) >>
702 (Garbage Collection Basics)
705 << /S /GoTo /D (11.39.68.2) >>
708 (Multi-Generational Garbage Collection)
711 << /S /GoTo /D (11.39.69.2) >>
714 (Run-Time Arguments for the Garbage Collector)
717 << /S /GoTo /D (11.39.70.2) >>
723 << /S /GoTo /D (11.40.1) >>
729 << /S /GoTo /D (11.40.71.2) >>
732 (Basic SML/NJ Performance)
735 << /S /GoTo /D (11.40.72.2) >>
741 << /S /GoTo /D (11.40.73.2) >>
744 (CML Channel Communication and Scheduling)
747 << /S /GoTo /D (11.40.74.2) >>
750 (Spawning Threads for Time-outs)
753 << /S /GoTo /D (11.40.75.2) >>
756 (Behaviour of Timeout Events)
759 << /S /GoTo /D (12.0) >>
762 (Chapter 8. The Swerve Web Server)
765 << /S /GoTo /D (12.41.1) >>
771 << /S /GoTo /D (12.42.1) >>
777 << /S /GoTo /D (12.42.76.2) >>
783 << /S /GoTo /D (12.42.77.2) >>
789 << /S /GoTo /D (12.42.77.1.3) >>
795 << /S /GoTo /D (12.42.77.2.3) >>
801 << /S /GoTo /D (12.42.77.3.3) >>
804 (The Authorization Header)
807 << /S /GoTo /D (12.42.77.4.3) >>
813 << /S /GoTo /D (12.42.77.5.3) >>
816 (The If-Modified-Since Header)
819 << /S /GoTo /D (12.42.77.6.3) >>
825 << /S /GoTo /D (12.42.77.7.3) >>
828 (The User-Agent Header)
831 << /S /GoTo /D (12.42.77.8.3) >>
837 << /S /GoTo /D (12.42.77.9.3) >>
840 (The Content-Encoding Header)
843 << /S /GoTo /D (12.42.77.10.3) >>
846 (The Content-Length Header)
849 << /S /GoTo /D (12.42.77.11.3) >>
852 (The Content-Type Header)
855 << /S /GoTo /D (12.42.77.12.3) >>
861 << /S /GoTo /D (12.42.77.13.3) >>
864 (The Last-Modified Header)
867 << /S /GoTo /D (12.42.77.14.3) >>
873 << /S /GoTo /D (12.42.78.2) >>
879 << /S /GoTo /D (12.42.78.15.3) >>
882 (The Location Header)
885 << /S /GoTo /D (12.42.78.16.3) >>
891 << /S /GoTo /D (12.42.78.17.3) >>
894 (The WWW-Authenticate Header)
897 << /S /GoTo /D (12.43.1) >>
903 << /S /GoTo /D (12.44.1) >>
906 (Server Configuration)
909 << /S /GoTo /D (12.44.79.2) >>
912 (Configuration File Syntax)
915 << /S /GoTo /D (12.44.80.2) >>
918 (The Server Parameters)
921 << /S /GoTo /D (12.44.81.2) >>
924 (The Node Parameters)
927 << /S /GoTo /D (12.45.1) >>
930 (The Architecture of the Server)
933 << /S /GoTo /D (12.45.82.2) >>
936 (Entities, Producers and Consumers)
939 << /S /GoTo /D (12.45.83.2) >>
942 (Requests and Responses)
945 << /S /GoTo /D (12.45.84.2) >>
948 (Resource Store Nodes)
951 << /S /GoTo /D (12.45.85.2) >>
954 (The Connection Protocol)
957 << /S /GoTo /D (12.45.86.2) >>
963 << /S /GoTo /D (12.45.87.2) >>
966 (System Resource Management)
969 << /S /GoTo /D (12.45.88.2) >>
972 (Shutting Down the Server)
975 << /S /GoTo /D (12.46.1) >>
978 (Building and Testing the Server)
981 << /S /GoTo /D (12.46.89.2) >>
987 << /S /GoTo /D (12.46.90.2) >>
990 (Testing Multiple Requests)
993 << /S /GoTo /D (12.46.91.2) >>
996 (Testing Authorisation)
999 << /S /GoTo /D (12.46.92.2) >>
1002 (Testing the Performance)
1005 << /S /GoTo /D (12.46.93.2) >>
1008 (Profiling the Server)
1011 << /S /GoTo /D (13.0) >>
1014 (Chapter 9. The Swerve Detailed Design)
1017 << /S /GoTo /D (13.47.1) >>
1023 << /S /GoTo /D (13.48.1) >>
1026 (The Organisation of the Code)
1029 << /S /GoTo /D (13.48.94.2) >>
1032 (How to Follow the Code)
1035 << /S /GoTo /D (13.48.95.2) >>
1038 (Building the Server)
1041 << /S /GoTo /D (13.49.1) >>
1047 << /S /GoTo /D (13.49.96.2) >>
1053 << /S /GoTo /D (13.49.97.2) >>
1056 (The Startup Module)
1059 << /S /GoTo /D (13.50.1) >>
1065 << /S /GoTo /D (13.50.98.2) >>
1068 (The Listener Module)
1071 << /S /GoTo /D (13.50.99.2) >>
1074 (The Connect Module)
1077 << /S /GoTo /D (13.50.100.2) >>
1083 << /S /GoTo /D (13.51.1) >>
1089 << /S /GoTo /D (13.51.101.2) >>
1095 << /S /GoTo /D (13.51.102.2) >>
1101 << /S /GoTo /D (13.51.103.2) >>
1107 << /S /GoTo /D (13.51.104.2) >>
1110 (The Directory Node Handler)
1113 << /S /GoTo /D (13.51.105.2) >>
1116 (The CGI Node Handler)
1119 << /S /GoTo /D (13.51.106.2) >>
1122 (The Builtin Node Handler)
1125 << /S /GoTo /D (13.51.107.2) >>
1128 (The ResponseUtils Module)
1131 << /S /GoTo /D (13.51.108.2) >>
1134 (The NodeAuth Module)
1137 << /S /GoTo /D (13.52.1) >>
1143 << /S /GoTo /D (13.52.109.2) >>
1149 << /S /GoTo /D (13.52.110.2) >>
1152 (The HTTPHeader Module)
1155 << /S /GoTo /D (13.52.111.2) >>
1158 (The IETFLine and IETFPart Modules)
1161 << /S /GoTo /D (13.52.112.2) >>
1164 (The HTTPStatus Module)
1167 << /S /GoTo /D (13.52.113.2) >>
1170 (The HTTPMsg Module)
1173 << /S /GoTo /D (13.53.1) >>
1179 << /S /GoTo /D (13.53.114.2) >>
1182 (The Config Module - Interface)
1185 << /S /GoTo /D (13.53.115.2) >>
1188 (The Configuration Grammar)
1191 << /S /GoTo /D (13.53.116.2) >>
1194 (The Configuration Lexer)
1197 << /S /GoTo /D (13.53.117.2) >>
1203 << /S /GoTo /D (13.53.118.2) >>
1206 (Processing the Parse Tree)
1209 << /S /GoTo /D (13.53.119.2) >>
1212 (MIME Type Configuration)
1215 << /S /GoTo /D (13.54.1) >>
1221 << /S /GoTo /D (13.54.120.2) >>
1227 << /S /GoTo /D (13.54.121.2) >>
1233 << /S /GoTo /D (13.54.122.2) >>
1239 << /S /GoTo /D (13.54.123.2) >>
1245 << /S /GoTo /D (13.54.124.2) >>
1251 << /S /GoTo /D (13.54.125.2) >>
1257 << /S /GoTo /D (13.54.126.2) >>
1260 (The MyProfile Module)
1263 << /S /GoTo /D (13.54.127.2) >>
1266 (The Open File Manager)
1269 << /S /GoTo /D (13.54.127.18.3) >>
1275 << /S /GoTo /D (13.54.127.19.3) >>
1281 << /S /GoTo /D (13.54.127.20.3) >>
1287 << /S /GoTo /D (13.54.127.21.3) >>
1290 (A Specialised Open Manager)
1293 << /S /GoTo /D (13.54.128.2) >>
1296 (The Signal Manager)
1299 << /S /GoTo /D (13.54.129.2) >>
1302 (The Singleton Module)
1305 << /S /GoTo /D (13.54.130.2) >>
1311 << /S /GoTo /D (13.54.131.2) >>
1314 (The TmpFile Module)
1317 << /S /GoTo /D (13.54.132.2) >>
1323 << /S /GoTo /D (14.0) >>
1326 (Chapter 10. Conclusion)
1329 << /S /GoTo /D (14.55.1) >>
1332 (SML/NJ vs Real-World Needs)
1335 << /S /GoTo /D (14.55.133.2) >>
1338 (Large-scale Development)
1341 << /S /GoTo /D (14.55.134.2) >>
1347 << /S /GoTo /D (14.55.135.2) >>
1353 << /S /GoTo /D (14.56.1) >>
1359 << /S /GoTo /D (14.57.1) >>
1365 << /S /GoTo /D (15.0) >>
1368 (Appendix A. Learning SML)
1371 << /S /GoTo /D (15.58.1) >>
1377 << /S /GoTo /D (15.59.1) >>
1383 << /S /GoTo /D (16.0) >>
1386 (Appendix B. Coping with the Compiler's Error Messages)
1389 << /S /GoTo /D (16.60.1) >>
1395 << /S /GoTo /D (16.61.1) >>
1401 << /S /GoTo /D (16.62.1) >>
1407 << /S /GoTo /D (16.63.1) >>
1413 << /S /GoTo /D (16.63.136.2) >>
1416 (Simple Type Errors)
1419 << /S /GoTo /D (16.63.137.2) >>
1422 (If and Case Expressions)
1425 << /S /GoTo /D (16.63.138.2) >>
1428 (Non-local Type Errors)
1431 << /S /GoTo /D (17.0) >>
1434 (Appendix C. Installation)
1437 << /S /GoTo /D (18.0) >>
1443 << /S /GoTo /D (19.0) >>
1449 << /S /GoTo /D (19.63.138.21.1.4) >>
1455 << /S /GoTo /D (19.63.138.21.2.4) >>
1461 << /S /GoTo /D (19.63.138.21.3.4) >>
1467 << /S /GoTo /D (19.63.138.21.4.4) >>
1473 << /S /GoTo /D (19.63.138.21.5.4) >>
1479 << /S /GoTo /D (19.63.138.21.6.4) >>
1485 << /S /GoTo /D (19.63.138.21.7.4) >>
1491 << /S /GoTo /D (19.63.138.21.8.4) >>
1497 << /S /GoTo /D (19.63.138.21.9.4) >>
1503 << /S /GoTo /D (19.63.138.21.10.4) >>
1509 << /S /GoTo /D (19.63.138.21.11.4) >>
1512 (functional programming)
1515 << /S /GoTo /D (19.63.138.21.12.4) >>
1521 << /S /GoTo /D (19.63.138.21.13.4) >>
1527 << /S /GoTo /D (19.63.138.21.14.4) >>
1533 << /S /GoTo /D (19.63.138.21.15.4) >>
1539 << /S /GoTo /D (19.63.138.21.16.4) >>
1542 (imperative programming)
1545 << /S /GoTo /D (19.63.138.21.17.4) >>
1551 << /S /GoTo /D (19.63.138.21.18.4) >>
1557 << /S /GoTo /D (19.63.138.21.19.4) >>
1563 << /S /GoTo /D (19.63.138.21.20.4) >>
1569 << /S /GoTo /D (19.63.138.21.21.4) >>
1575 << /S /GoTo /D (19.63.138.21.22.4) >>
1581 << /S /GoTo /D (19.63.138.21.23.4) >>
1587 << /S /GoTo /D (19.63.138.21.24.4) >>
1593 << /S /GoTo /D (19.63.138.21.25.4) >>
1599 << /S /GoTo /D (19.63.138.21.26.4) >>
1605 << /S /GoTo /D (19.63.138.21.27.4) >>
1611 << /S /GoTo /D (19.63.138.21.28.4) >>
1617 << /S /GoTo /D (19.63.138.21.29.4) >>
1620 (stdin, stdout, stderr)
1623 << /S /GoTo /D (19.63.138.21.30.4) >>
1629 << /S /GoTo /D (19.63.138.21.31.4) >>
1635 << /S /GoTo /D (19.63.138.21.32.4) >>
1641 << /S /GoTo /D (19.63.138.21.33.4) >>
1647 << /S /GoTo /D (19.63.138.21.34.4) >>
1653 << /S /GoTo /D (19.63.138.21.35.4) >>
1659 << /S /GoTo /D (19.63.138.21.36.4) >>
1665 << /S /GoTo /D (19.63.138.21.37.4) >>
1671 << /S /GoTo /D [1113 0 R /Fit ] >>
1675 /Filter /FlateDecode
1678 xÚ¥
\8f=
\vÂ@
\f\86÷þ
\8a\8cvhìå>Ò®
\82\ e~
\80à9
\89C±Z
\8b\
\85ZPÿ½×
\9eâè
\81äMxÞ
\90\bH}
\b`
\81,
\ 5\18"
\94¤áà"
\ 1!.ðQ
\v?
\v´Ô
\125{ù
\83K¤N
\91
$F£ÉU
\8fOl4
\9e\11\ 1)ä
\1cìi m¹
\em
\9bú
\11'
\94ñhó¼uG
\17ôº½Vmá\ÝTñÞÎA
\e$
\92~1ùÊ
\83ñ^wç·±+
\9a²hËÐ
\96½#
\9aÚï9
\84\99Ï
\8a sõ÷
\93/
\ 4%C^endstream
1687 /MediaBox [0 0 497.031 706.011]
1691 /D [1113 0 R /XYZ 71.731 622.325 null]
1694 /D [1113 0 R /XYZ 71.731 574.504 null]
1697 /D [1113 0 R /XYZ 71.731 574.504 null]
1700 /Font << /F22 1121 0 R >>
1701 /ProcSet [ /PDF /Text ]
1705 /Filter /FlateDecode