Synopses & Reviews
Functional programming, is a style of programming that has become increasingly popular during the past few years. Applicative programs have the advantage of being almost immediately expressible as functional descriptions; they can be proved correct and transformed through the referential transparency property. This book presents the basic concepts of functional programming, using the language HASKELL for examples. The author incorporates a discussion of lambda calculus and its relationship with HASKELL, exploring the implications for parallelism.
Review
"...a very readable and understandable introduction to functional programming. It provides many concrete programming examples written in Haskell and discusses several design principles that seem to be unique to functional programming. I would recommend this book to all professional software developers for its discussion of software design using higher-order functions and streams. The book is perfect for an undergraduate course on functional programming. Haskell compilers are available from the research community, so students can get hands-on experience. Graduate students should be able to read this book on their own for an introduction to functional programming, the lambda calculus, polymorphic types, and combinatory logic." Reginald Meeson, ACM SIGPLAN Notices
Synopsis
This study presents the basic concepts of applicative programming drawing on the language SASL for examples. The author incorporates a discussion of Lambda calculus and its relationship with SASL, as well as exploring the implications for parallelism.
Synopsis
The basic concepts of applicative programming are presented using the language HASKELL for examples. In addition to exploring the implications for parallelism, a discussion of lamda calculus and its relationship with SASL is included.
Description
Includes bibliographical references (p. 213-225) and index.
Table of Contents
1. Introduction; 2. Introduction to functional programs; 3. Techniques and methods; 4. Types; 5. Lambda calculus; 6. Applicative implementation; 7. Lazy evaluation; 8. Implementation of lazy evaluation; 9. Correctness; 10. Applicative program transformation; 11. Parallel evaluation; Bibliography; Appendices; Index.