Skip to content
No description or website provided.
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Advanced.md
LICENSE
Languages.md
README.md
TOC.md

README.md

Introduction to Functional Programming

The aim of this course is to teach the foundations of functional programming and how to apply them in the real world.

Broadly speaking, functional programming is a style of programming in which the primary method of computation is the application of functions to arguments. Among other features, functional languages offer a compact notation for writing programs, powerful abstraction methods for structuring programs, and a simple mathematical basis that supports reasoning about programs.

Functional languages represent the leading edge of programming language design, and the primary setting in which new programming concepts are introduced and studied. All contemporary programming languages such as Hack/PHP, C#, Visual Basic, F#, C++, JavaScript, Python, Ruby, Java, Scala, Clojure, Groovy, Racket, … all support functional programming via the concept of closures or lambda expressions.

This course will use Haskell as the medium for understanding the basic functional principles. While the specific language isn't all that important, Haskell is a pure functional language so it is entirely appropriate for learning the essential ingredients of functional programming. Also, as Haskell is a relatively small language, it should be easy for you to get up to speed with it.

Once you understand the Why, What and How that underlies pure functional programming and learned to “think like a fundamentalist”, we will apply the concepts of functional programming to “code like a hacker” in mainstream programming languages.

The recommended textbook for this course is Programming in Haskell by Graham Hutton (http://www.cs.nott.ac.uk/~gmh/book.html).

Something went wrong with that request. Please try again.