introduction to functional programming systems using haskell cambridge computer science texts by...

2
Introduction to Functional Programming Systems Using Haskell (Cambridge Computer Science Texts) by Antony J. T. Davie A Very Good Introductory Book 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. Conceptually the content of this book can be divided into three major sections. The first is a well constructed overview of Haskell which, though not suitable as a primary tutorial, is organized in a building block style that clearly explains the core concepts of the language and their syntax. Examples are of minimal complexity and fit each purpose well while remaining free of yet unintroduced material. The other two sections, theory and implementation, are interleaved to present the material in a constructive way. The introduction to lambda calculus marks the first deviation from a pragmatic study of Haskell, however, proofs are largely omitted leaving mostly definitions, relevant theorems, and explanations. This book served as my introduction to lambda calculus and I found it somewhere between impenetrable and relaxing, which is to say that it was very helpful despite requiring a second read. The chapter closes with a desugaring of Haskell into the simpler constructs of lambda calculus. Next the properties of applicative languages are studied and implemented (in Haskell) on a SECD machine. Then lazy evaluation is studied and techniques of implementation such as SECD, graph reduction, SKI- combinators, and the G-Machine are covered. Following this is an overview of program transformations and optimizations with a brief

Upload: johnwatson421

Post on 25-Dec-2014

436 views

Category:

Documents


3 download

DESCRIPTION

 

TRANSCRIPT

Introduction to Functional Programming Systems Using Haskell (Cambridge Computer Science Texts)

by Antony J. T. Davie

A Very Good Introductory Book

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.

Conceptually the content of this book can be divided into three major

sections. The first is a well constructed overview of Haskell which, though

not suitable as a primary tutorial, is organized in a building block style that

clearly explains the core concepts of the language and their syntax.

Examples are of minimal complexity and fit each purpose well while

remaining free of yet unintroduced material. The other two sections, theory

and implementation, are interleaved to present the material in a constructive way. The introduction to lambda calculus marks the first

deviation from a pragmatic study of Haskell, however, proofs are largely

omitted leaving mostly definitions, relevant theorems, and explanations.

This book served as my introduction to lambda calculus and I found it

somewhere between impenetrable and relaxing, which is to say that it was

very helpful despite requiring a second read. The chapter closes with a

desugaring of Haskell into the simpler constructs of lambda calculus. Next

the properties of applicative languages are studied and implemented (in

Haskell) on a SECD machine. Then lazy evaluation is studied and

techniques of implementation such as SECD, graph reduction, SKI-

combinators, and the G-Machine are covered. Following this is an

overview of program transformations and optimizations with a brief

summary of ongoing work in the field. The three conceptual topics;

language, theory, and implementation are covered uniformly so there is a

decreasing completeness to the Haskell presentations as abstractions pile

up e.g. there is no concrete implementation of lazy evaluation. Instead the

operation of machines is described with graphics or combinators in the

notation of lambda calculus. This book covers implementation adequate for

an intermediate command of Haskell while serving as an excellent

introduction to the theory behind functional programming.

For More 5 Star Customer Reviews and Lowest Price: Introduction to Functional Programming Systems Using Haskell (Cambridge Computer

Science Texts) by Antony J. T. Davie - 5 Star Customer Reviews and Lowest Price!