views:

443

answers:

8

Is there a book that teaches functional programming, without being a tutorial for an FP language? I am looking for more theoretical stuff.

A: 

A book on lambda calculus would probably be your best bet.

Barry
+1  A: 

"How to Design Programs" is a textbook used by first year computer science students from various universities that uses Scheme (Lisp) to leach functional programming. It is available online.

http://www.htdp.org/

h4xnoodle
+7  A: 

Structure and Interpretation of Computer Programs is a fantastic book. It's has a wider scope than just functional programming, but it thoroughly introduces it and then uses it along the way to structure different kinds of programs. It uses Scheme, but doesn't introduce more of the language than necessary to deal with the underlying concepts. The book is freely available on the website.

There are also video lectures online.

Thomas Kappler
It's been a way too long since I've read SICP, but I kinda remember that pretty much the only "minus" of it was that it didn't contrast functional/imperative approach much.
Pasi Savolainen
+1  A: 

I would recommend "ML for the working programmer". While it is based on the language ML it also explains FP in general, but I suppose that any good book on any subject would have to be based on (at least some) real examples.

Here's a link to the book on Amazon:

http://www.amazon.com/ML-Working-Programmer-Lawrence-Paulson/dp/052156543X/ref=sr%5F1%5F2?ie=UTF8&s=books&qid=1259840697&sr=1-2

klausbyskov
+2  A: 

Why Functional Programming Matters by John Hughes is also a good read.

http://www.cs.chalmers.se/~rjmh/Papers/whyfp.html

johanbev
+6  A: 

Type Theory and Functional Programming by Simon Thompson. Shows the relationship between constructive type theory (essentially turning the lambda calculus into a foundation for constructive mathematics) and functional programming. It's an introductory textbook, uses Miranda (all but defunct, but Haskell extended and embraced Miranda), was published in 1991, and is now free to download.

Charles Stewart
You can buy the book from here: http://www.cafepress.com/haskell_books.11895795
Johan Kullbom
+1  A: 

It's an old book, but one of the most comprehensive texts on FP is Chris Reade's Elements of Functional Programming. It uses ML to illustrate the concepts, but it is at heart a theoretical overview.

rtperson
+1  A: 

Richard Bird's Introduction to Function Programming using Haskell, which despite its title is not a Haskell tutorial. Also, Chris Okasaki's Purely Functional Data Structures.

Rich
+1 Okasaki's book. But it's not the kind of theoretical the qner is after.
Charles Stewart