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.