Practical OCaml
Год: 2006
Автор: Joshua B. Smith
Жанр: Практическое пособие
Издательство: Apress
ISBN: 978-1-59059-620-3, 1-59059-620-X
Серия: Expert's Voice in Open Source
Язык: Английский
Формат: PDF
Качество: Изначально компьютерное (eBook)
Количество страниц: 483
Описание: Objective Caml (OCaml) is an open sourced programming language that allows a programmer to utilize both functional and object oriented programming. A very fast and efficient language, oCaml's speed is on par with the likes of C/C++. The compiler is available for a variety of platforms, including Windows, Unix, Linux, and Apple. OCaml can be found in a variety of scientific applications and well as a teaching language in universities.
Practical OCaml teaches Objective Caml in a straightforward and practical manner. All the features of this functional programming language are taught by example. You will learn how to utilize the OCaml language to create a simple database, do reporting, and create a spam filter. You will also learn how to do complex log file scanning, create your own network servers by creating a shoutcast server, and create a web crawler. By this book's conclusion, you will be well on your way to creating your own applications with OCaml, as well as knowing when and why OCaml should be used.
Оглавление
CHAPTER 1 Why Objective Caml (OCaml)?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
CHAPTER 2 Interacting with OCaml: The Toplevel. . . . . . . . . . . . . . . . . . . . . . . . . . . 11
CHAPTER 3 Syntax and Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
CHAPTER 4 Understanding Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
CHAPTER 5 Practical: Creating a Simple Database. . . . . . . . . . . . . . . . . . . . . . . . . . 51
CHAPTER 6 Primitive and Composite Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
CHAPTER 7 Practical: Simple Database Reports, Exports, and Imports . . . . . . 73
CHAPTER 8 Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
CHAPTER 9 Files and File I/O. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
CHAPTER 10 Exception Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
CHAPTER 11 Practical: A URI Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
CHAPTER 12 Using Ocamldoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
CHAPTER 13 Modules and Functors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
CHAPTER 14 Practical: A Spam Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
CHAPTER 15 Practical: A Network-Aware Scoring Function . . . . . . . . . . . . . . . . . 179
CHAPTER 16 Ocamllex and Ocamlyacc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
CHAPTER 17 Practical: Complex Log File Parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
CHAPTER 18 The Objective Part of Caml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
CHAPTER 19 Digression: OCaml Is Not Pure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
CHAPTER 20 Digression: Functional Programming . . . . . . . . . . . . . . . . . . . . . . . . . . 261
CHAPTER 21 Practical:Web Programming. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
CHAPTER 22 Practical: A Shoutcast Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
CHAPTER 23 Using Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
CHAPTER 24 Practical: A Concurrent Web Crawler . . . . . . . . . . . . . . . . . . . . . . . . . . 329
CHAPTER 25 Interfacing with OCaml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
CHAPTER 26 Practical: Time and Logging Libraries . . . . . . . . . . . . . . . . . . . . . . . . . 359
CHAPTER 27 Processing Binary Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
CHAPTER 28 OCaml Development Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
CHAPTER 29 Camlp4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
CHAPTER 30 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Какой программой открыть книгу?
Опубликовано группой