Advanced text on how to program in the functional way; has exercises, solutions and code.In functional programming, logical concepts are evident and programs are transparent so can be written quickly and cleanly. The authors introduce the subject via examples and explain what programs compute and how to reason about them. They show how the ideas can implemented in Caml, a dialect of ML, and give examples of how complex programs from various areas can be developed in close agreement with their specifications.Many exercises and examples are included throughout the book; solutions are also available. An appendix gives all the code used in the book in Standard ML.In functional programming, logical concepts are evident and programs are transparent so can be written quickly and cleanly. The authors introduce the subject via examples and explain what programs compute and how to reason about them. They show how the ideas can implemented in Caml, a dialect of ML, and give examples of how complex programs from various areas can be developed in close agreement with their specifications.Many exercises and examples are included throughout the book; solutions are also available. An appendix gives all the code used in the book in Standard ML.A programming course should concentrate on a program's logical structure and design rather than on simply writing code. The functional approach to programming achieves this aim because logical concepts are evident and programs are transparent, and so can be written quickly and cleanly. In this book, the authors emphasize the notions of function and relate programming to familiar concepts from mathematics and logic. They introduce functional programming via examples but also explain what programs compute and how to reason about them. They show how the ideas can be implemented in the Caml language, a dialect of the ML family, and give examples of how complex programs from a variety of areas (such as arithmetic, tree algorithms, graph algorithmsls: