Lambda-calculus, Combinators and Functional Programming provides and introduction into lambda calculus and combinators. More freely available books you can find at the site of Free Tech Books project.
Type Theory, Category Theory, etc. Type theory plays central role in functional programming, especially for strongly typed programming languages, like Haskell. Category theory also belongs to the theoretical foundations of functional programming. There are several books dedicated to these topics: Types and Programming Languages — classical book on type theory by Benjamin C.
Basic Category Theory for Computer Scientists is an introduction to category theory from the point of view of computer science; Conceptual Mathematics: A First Introduction to Categories is a very detailed and very written introduction to category theory, that could be pretty useful when studying functional programming; Categories for the Working Mathematician by Saunders Mac Lane is about basic concepts of category theory, with more concentration on mathematical side of it; The Interactive Theorem Proving and Program Development book is a practical introduction to the development of proofs and certified programs using Coq; Certified Programming with Dependent Types beta-version is freely available describes how Coq could be used to prove correctness of programs; Software Foundationswritten by Benjamin C.
Implementation of Functional Programming Languages Some of aforementioned books provide some details of implementation of functional programming languages. But there are also books, that are completely dedicated to this topic: Algorithms for Automatic Dynamic Memory Management is completely dedicated to description of different strategies for garbage collection that are often used in functional programming languages.
The new edition was published in th under title The Garbage Collection Handbook: The Art of Automatic Memory Management. The Modern Compiler Implementation in ML books describes how to implement compilers parsing, code generation, etc.
The book uses the Standard ML as implementation language. Usually they mention functional programming languages. I want to mention following books that could provide good overview of functional programming approach: This book describes main concepts of different programming languages.
Functional Programming for Programmers in Other Languages In the last years, several books were published, whose main topic is an introduction to functional programming for developers in "traditional" languages, like Java, Cetc.: Classic Programming Techniques for Modern Projects book, that shows how to use functional programming techniques in C.
Functional Programming for the Object-Oriented Programmer is an introduction into functional programming for people, who has an experience with object-oriented programming.
The book uses Clojure to demonstrate described concepts.
Functional C shows how the programs in C programming language could be written in functional programming style. Relatively good introduction to specific functional programming languages you can find in the Seven Languages in Seven Weeks book, published by Pragmatic Bookshelf.
I think, that this book could be used to understand, will you want to continue to learn particular language, or not. Haskell I want to mention following Haskell-specific books: The Introduction to Functional Programming using Haskell by Richard Bird is a functional programming textbook and it uses Haskell for examples.
It describes base concepts of functional programming and their application in Haskell. The Real World Haskell is a great book on Haskell language, because besides description of the language itself, it also shows how to use Haskell in real-life: You can also read it online for free.
Lisp in Small Pieces [Christian Queinnec] on alphabetnyc.com *FREE* shipping on qualifying offers. This is a comprehensive account of the semantics and the implementation of the whole Lisp family of languages. Appendix: Power As an illustration of what I mean about the relative power of programming languages, consider the following problem. We want to write a function that generates accumulators-- a function that takes a number n, and returns a function that takes another number i and returns n incremented by i. LISP Tutorial 1: Basic LISP Programming LISP Expressions. When you start up the Common LISP environment, you should see a prompt, which means that LISP is waiting for you to enter a LISP expression.
The Programming in Haskell book, written by Graham Hutton, compactly describes Haskell, and could be used as reference for people, who already know some Haskell, or other functional language, such as, OCaml or Standard ML.
This book is also used in the video-lectures by Erik Meijer at Channel9. The Craft of Functional Programming book describes main concepts of Haskell, including separate chapters on data types, type classes, etc. The Haskell School of Expression: Learning Functional Programming through Multimedia shows practical aspects of work with Haskell, and describes relatively complex topics, such as, interaction with external stuff, designing Haskell programs, etc.Functional programming has very long history and a lot of books was released in paper & electronic forms.
These books covers all areas, from theoretical foundations of functional programming to programming in concrete languages & frameworks. Lisp in Small Pieces [Christian Queinnec] on alphabetnyc.com *FREE* shipping on qualifying offers.
This is a comprehensive account of the semantics and the implementation of the whole Lisp family of languages.
Lisp (historically, LISP) is a family of computer programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in , Lisp is the second-oldest high-level programming language in widespread use today.
Only Fortran is older, by one year. Lisp has changed since its early days, and many dialects have existed over its history.
Introduction: Why Lisp? then programming in Common Lisp is likely to be about the most fun you can have with a computer. You'll get more done, faster, using it than you would using pretty much any other language. declarations, a good Lisp compiler can generate machine code quite similar to what might be generated by a C compiler.
The. 1 The kind of programming that relies on a symbol data type is called, appropriately enough, symbolic computation. It's typically contrasted to numeric programming.
An example of a primarily symbolic program that all programmers should be familiar with is a compiler--it treats the text of a program as symbolic data and translates it into a new form.