Lambda calculus provides a theoretical framework for describing functions and their evaluation. Although it is a mathematical abstraction rather than a programming language, it forms the basis of almost all functional programming languages today. An equivalent theoretical formulation, combinatory logic, is commonly perceived as more abstract than lambda calculus and preceded it in invention. It is used in some esoteric languages including Unlambda. Combinatory logic and lambda calculus were both originally developed to achieve a clearer approach to the foundations of mathematics.
Benefits of Pure Functions
Live Functional Programming with Typed Holes (POPL - Research Papers) - POPL
The International Conference on the Art, Science, and Engineering of Programming is a new conference focused on programming topics including the experience of programming. Scope The Art, Science, and Engineering of Programming accepts papers that advance knowledge of programming. Almost anything about programming is in scope, but in each case there should be a clear relevance to the act and experience of programming. Additionally, papers must be written in a scholarly form.
Simon Peyton Jones
Pure Functions are used heavily in functional programming. It is easy to understand the definition of a Pure Function. We have already covered it in the earlier topics.
Though Lisp is dynamically typed, impure, and eagerly evaluated, this book is worth reading for its historical importance, for its excellent introduction to functional programming and metaprogramming, and for its code excerpts. Translating it to Haskell, or attempting to, is a good exercise. This classic presents concrete evidence of the power and simplicity of pure functional programming. Translating the example code to Haskell is another good exercise. The amusing anecdotes within are effective teachers of some of the most technical parts of Haskell.