Sign up ×
Computer Science Stack Exchange is a question and answer site for students, researchers and practitioners of computer science. It's 100% free, no registration required.

I have recently become extremely interested in understanding and proving aspects of (functional) programming languages.

However as I dive deeper in, things like $\lambda$ calculus, category theory, and denotational semantics are a little difficult to grok without proper explanation.

I read SICP (quite an enlightening book) but I'm looking to dive deeper into the theory of functional programming. Are there any books/blogs/sites/you-name-it that would discuss the theory of functional programming languages from the ground up?

share|cite|improve this question

3 Answers 3

up vote 7 down vote accepted

It is not easy to come by books that consider the denotational semantics of $\lambda$-calculus. One possibility is:

  1. Roberto M. Amadio and Pierre-Louis Curien: Domains and Lambda-Calculi

Type-theoretic accounts are easier to get hold of:

  1. Bob Harper, Practical Foundations of Programming Languages (there is also a printed version).
  2. Benjamin Pierce, Types and Programming Languages.
  3. Frank Pfenning's course on Computation and Deduction, I think he also published a book with the same title.
share|cite|improve this answer
I went with Domains and Lambda-Calculi as well as Design Concepts in Programming Languages (thick but worth it so far) –  jozefg Dec 24 '12 at 20:33

A new answer to an old question. You might be interested in Category Theory for Programmers by Bartosz Milewski. More generally, you can look at Bartosz Milewski's Programming Cafe blog.

share|cite|improve this answer

These books have high ratings and come up on different scientific communities:

Type Theory and Functional Programming by Simon Thompson.

Structure and Interpretation of Computer Programs

share|cite|improve this answer
How do these books address theory? Why do you recommend them; have you read them? –  Raphael Feb 17 '13 at 9:52

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.