H. Barendregt. The Lambda Calculus, Its Syntax and Semantics. North-Holland, revised edition, 1984.
H. B. Curry and R. Feys. Combinatory Logic, volume 1. North-Holland, 1958.
A. Church. A set of postulates for the foundation of logic. Ann. Math., 2:33-34, 346-366, 839-864, 1932.
A. Church. The Calculi of Lambda Conversion. Princeton University Press, 1941.
J. Hindley and J. Seldin.
Introduction to Combinators and Lambda Calculus. Cambridge University
Press, 1986.
Theory of Functional Programming
W. H. Burge. Recursive Programming Techniques. Addison-Wesley, 1975.
P. Hudak. Conception, Evolution, and Application of Functional Programming Languages. ACM Computing Surveys, 21(3):359-411, 1989.
J. Hughes. Why Functional Programming Matters. Computer Journal, 32(2), 1989.
P. Landin. The mechanical evaluation of expressions. Computer Journal, 6(4):308-320, 1964.
P. Landin. A correspondence between ALGOL 60 and Church's lambda notation. Commun. ACM, 8:89-101, 158-165, 1965.
J. McCarthy. Recursive functions of symbolic expressions and their computation by machine. Commun. ACM, 3:184-195, 1960.
D. Turner. The Semantic Elegance
of Applicative Languages. In Proc. 1981 Functional Programming and Computer
Architecture, New Hampshire, 1981.
Monads
R. Bird. Introduction to Functional Programming using Haskell. Prentice Hall, second edition, 1998.
M. Jones. Functional Programming with Overloading and Higher-Order Polymorphism. In Advanced Functional Programming,LNCS 925, pages 97-136, 1995.
P. Wadler. The essence of functional programming. In 1992 Symposium on Principles of Programming Languages, pages 1-14, 1992.
P. Wadler. Monads for functional
programming. In Advanced Functional Programming,LNCS 925, pages
24-52, 1995.
Parsing
G. Hutton. Higher-order functions
for parsing. Journal of Functional Programming, 2:323-343, 1992.
Type Checking
L. Damas and R. Milner. Principle type schemes for functional languages. In 9th ACM Symposium on Principles of Programming Languages, 1982.
P. Hancock. Polymorphic Type Checking, chapter 8 and 9. In [Pey87], 1987.
R. Hindley. The principle type scheme of an object in combinatory logic. Trans. Amer. Math. Soc., 146:29-60, 1969.
R. Milner. A theory of type
polymorphism in programming. Comput. Sist. Sci., 17(3), 1978.
Pattern Matching
L. Augustsson. Compiling pattern-matching. In Proc. 1985 Functional Programming and Computer Architecture, number 201 in LNCS, pages 368-381. Springer-Verlag, 1985.
L. Maranget. Two techniques for compiling lazy pattern matching. Technical Report 2385, INRIA, 1994.
P. Wadler. Compiling pattern-matching,
chapter 5 and 6. In [Pey87], 1987.
Lambda lifting
T. Johnsson. Lambda Lifting:
Transforming Programs to Recursive Equations. In Proc. 1985 Functional
Programming and Computer Architecture, number 201 in LNCS. Springer-Verlag,
1985.
Compilers
A. W. Appel and D. MacQueen. A standard ML compiler. In Proc. 1987 Functional Programming and Computer Architecture, number 274 in LNCS, pages 301-324. Springer-Verlag, 1987.
A. Appel. Modern Compiler Techniques in Java. Cambridge University Press, 1998.
H. Abelsson, G. Sussman, and J. Sussman. Structure and Interpretation of Computer Programs. MIT Press, 1985.
L. Augustsson. A compiler for lazy ML. In Proc. 1984 ACM Conference on LISP and Functional Programming, pages 218-227. ACM, 1984.
J. Fairbairn and S. Wray. Tim: a simple, lazy abstract machine to execute supercombinators. In Proc. of 1987 Functional Programming Languages and Computer Achitecture Conference, number 274 in LNCS, pages 34-45. Springer-Verlag, 1987.
A. J. Field and P. G. Harrison. Functional Programming. Addison-Wesley, 1988.
S. Peyton Jones. The Implementation of Functional Programming Languages. Prentice Hall, 1987.
S. Peyton Jones. Implementing lazy functional languages on stock hardware: the Spineless Tagless G-machine. Version 2.5. Journal of Functional programming, 2(2), 1992.
S. Peyton Jones and D. Lester. Implementing Functional Languages: a tutorial. University of Glasgow, 1995.