To get the free app, enter your email address or mobile phone number.
Introduction to Functional Programming Systems Using Haskell (Cambridge Computer Science Texts) 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
Frequently Bought Together
Customers Who Bought This Item Also Bought
More About the Author
Top Customer Reviews
To me, it seems to cover all basic contents of FP and has both theoretical background (eg. lambda calculus) and shows how the theory maps into Haskell.
However, to be able to actually create something useful with the language, I'd recommend to accompany this book with O'Reilly's Real World Haskell, which is much more practical and is focused more to Haskell itself. That said, RWH lacks the more deep theory behind FP, but together these two books make a powerful resource for future professional FP programmers.
Haskell has versatile syntax, allowing many different representations of any expression. It also supports high-order functions, or functions of functions. You'll also find a Prolog-like pattern matching facility (without the full capacity of Prolog's unification engine), which enables some kinds of overloading. The language supports "modules" as well, a limited kind of scoping mechanism intended to support programming in the large.
If "functional" programming is a term you haven't heard before, it means that, ideally, a program runs entirely in terms of expression evaluations without side effects - the program has no state except for transient state on its stack. This ultimately makes it a poor match to the real world. Even the ideas of storing a Haskell program on disk and holding its output pixels on screen violate the stateless paradigm, since that storage would be long-lived state. In the end, a functional programming language must violate its stateless purity to be relevant to commercial problem solving, or must leave state management to some part of the system outside of the language. The latter doesn't really solve the problem of state, it simply pushes the problem around - i.e. to some other programming language.
Haskell is an interesting exercise in language design, embodies many useful concepts from formal logic, and gives up many of the features that make it difficult to reason about programs in rigorous ways.Read more ›