Introduction to Functional Programming

Shows the transition from imperative programming to functional programming. Introduces lambda calculus, how to add types to it, and how to use ML to implement basic functional programming, polymorphism, exceptions and imperative features.

**Tag(s):**
Functional Programming

**Publication date**: 01 Dec 1997

**ISBN-10**:
n/a

**ISBN-13**:
n/a

**Paperback**:
n/a

**Views**: 20,605

**Type**: N/A

**Publisher**:
n/a

**License**:
n/a

**Post time**: 16 Oct 2006 08:28:39

Introduction to Functional Programming

Shows the transition from imperative programming to functional programming. Introduces lambda calculus, how to add types to it, and how to use ML to implement basic functional programming, polymorphism, exceptions and imperative features.

Document Excerpts:

This book serves as the lecture notes for the Introduction to Functional Programming course, at Cambridge University.

For those used to imperative programming, the transition to functional programming is inevitably difficult, whatever approach is taken. While some will be impatient to get quickly to real programming, this book starts with lambda calculus, and show how it can be seen as the theoretical underpinning for functional languages. This has the merit of corresponding quite well to the actual historical line of development.

So first the book introduces lambda calculus, and shows how what was originally intended as a formal logical system for mathematics turned out to be a completely general programming language. It then discusses why we might want to add types to lambda calculus, and show how it can be done. This leads us into ML, which is essentially an extended and optimized implementation of typed lambda calculus with a certain evaluation strategy. The book covers the practicalities of basic functional programming in ML, and discuss polymorphism and most general types. It then moves on to more advanced topics including exceptions and ML's imperative features. Finally, the book concludes with some substantial examples, which should provide evidence for the power of ML.

This book serves as the lecture notes for the Introduction to Functional Programming course, at Cambridge University.

For those used to imperative programming, the transition to functional programming is inevitably difficult, whatever approach is taken. While some will be impatient to get quickly to real programming, this book starts with lambda calculus, and show how it can be seen as the theoretical underpinning for functional languages. This has the merit of corresponding quite well to the actual historical line of development.

So first the book introduces lambda calculus, and shows how what was originally intended as a formal logical system for mathematics turned out to be a completely general programming language. It then discusses why we might want to add types to lambda calculus, and show how it can be done. This leads us into ML, which is essentially an extended and optimized implementation of typed lambda calculus with a certain evaluation strategy. The book covers the practicalities of basic functional programming in ML, and discuss polymorphism and most general types. It then moves on to more advanced topics including exceptions and ML's imperative features. Finally, the book concludes with some substantial examples, which should provide evidence for the power of ML.

Tweet

About The Author(s)

No information is available for this author.

Book Categories

Computer Science
Introduction to Computer Science
Introduction to Computer Programming
Algorithms and Data Structures
Artificial Intelligence
Computer Vision
Machine Learning
Neural Networks
Game Development and Multimedia
Data Communication and Networks
Coding Theory
Computer Security
Information Security
Cryptography
Information Theory
Computer Organization and Architecture
Operating Systems
Image Processing
Parallel Computing
Concurrent Programming
Relational Database
Document-oriented Database
Data Mining
Big Data
Data Science
Digital Libraries
Compiler Design and Construction
Functional Programming
Logic Programming
Object Oriented Programming
Formal Methods
Software Engineering
Agile Software Development
Information Systems
Geographic Information System (GIS)

Mathematics
Mathematics
Algebra
Abstract Algebra
Linear Algebra
Number Theory
Numerical Methods
Precalculus
Calculus
Differential Equations
Category Theory
Proofs
Discrete Mathematics
Theory of Computation
Graph Theory
Real Analysis
Complex Analysis
Probability
Statistics
Game Theory
Queueing Theory
Operations Research
Computer Aided Mathematics

Supporting Fields
Web Design and Development
Mobile App Design and Development
System Administration
Cloud Computing
Electric Circuits
Embedded System
Signal Processing
Integration and Automation
Network Science
Project Management

Operating System
Programming/Scripting
Ada
Assembly
C / C++
Common Lisp
Forth
Java
JavaScript
Lua
Microsoft .NET
Rexx
Perl
PHP
Python
R
Rebol
Ruby
Scheme
Tcl/Tk

Miscellaneous
Sponsors