We may earn an affiliate commission when you visit our partners.

Functional Programming

Save
May 1, 2024 Updated May 9, 2025 36 minute read

Functional programming is a programming paradigm, a way of thinking about and structuring code, that treats computation as the evaluation of mathematical functions. Unlike imperative programming, which focuses on sequences of commands that change a program's state, functional programming emphasizes the application and composition of functions. In this paradigm, functions are considered "first-class citizens," meaning they can be assigned to variables, passed as arguments to other functions, and returned as results, just like any other data type. The core idea is to build software by creating and combining these functions to achieve desired outcomes.

Path to Functional Programming

Take the first step.
We've curated 24 courses to help you on your path to Functional Programming. Use these to develop your skills, build background knowledge, and put what you learn to practice.
Sorted from most relevant to least relevant:

Share

Help others find this page about Functional Programming: by sharing it with your friends and followers:

Reading list

We've selected 30 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Functional Programming.
An updated edition of the popular 'Functional Programming in Scala', this book covers the latest standards of FP and includes full code updates to Scala 3. It helps developers learn to recognize and write purely functional code and work with common functional structures. It's suitable for those with some Scala or Java experience.
Deep dive into functional programming concepts using Scala. It is considered a serious tutorial for programmers looking to apply FP to their work. It covers basic techniques to advanced topics with concrete examples and exercises. A second edition is available, updated for Scala 3.
A widely recommended introductory book for learning Haskell and functional programming. It is known for its clear explanations and practical examples, making it suitable for beginners. It's often used as a textbook.
Classic in the field, focusing on the design and implementation of data structures using purely functional principles. It's a valuable resource for those who want to understand the intricacies of building persistent and efficient data structures in functional languages. It assumes some working knowledge of FP.
Focuses on using Haskell to solve real-world programming problems. It's excellent for those who have a basic understanding of Haskell and want to see how FP concepts are applied in practice. It provides a practical approach to functional programming.
Introduces functional programming concepts to developers familiar with object-oriented languages. It uses examples in Java and Scala to explain core FP ideas like pure functions and immutable data. It focuses on practical aspects and helps bridge the gap between OO and FP thinking.
A popular and whimsical guide to learning Haskell. It's known for its engaging style and clear explanations, making complex concepts approachable for beginners. It serves as a great supplementary resource for learning Haskell and FP.
Takes a deep look at the Clojure language, going beyond syntax to show how to write fluent and idiomatic Clojure code. It covers functional and declarative approaches and techniques for concurrency and performance. It's appropriate for readers with some experience in Clojure or Common Lisp.
Demonstrates how to apply functional programming principles in C#. It's valuable for C# developers who want to write more robust and maintainable code using FP techniques. It covers core FP concepts and their implementation in C#.
Comprehensive guide to the Clojure programming language, a Lisp dialect that emphasizes functional programming. It's suitable for developers interested in a dynamic functional language that runs on the JVM.
Explores functional programming concepts within the Python language. It covers topics like lazy evaluation, generator functions, and monads in a Python context. It's valuable for Python developers looking to incorporate FP techniques into their coding. A second edition is available.
Uses a unique question-and-answer format to teach the fundamentals of recursion and functional programming using Scheme. It's a relatively quick read that helps build a strong intuition for functional thinking. It is particularly useful for those new to the concepts and serves as a good precursor to more in-depth texts.
Introduces the Elixir programming language, which functional language built on the Erlang VM. It's suitable for those interested in learning a modern functional language known for its concurrency and fault tolerance features.
Comprehensive guide to the Kotlin language, which supports both object-oriented and functional programming paradigms. It's useful for developers interested in learning Kotlin and how to apply functional concepts within the language.
A follow-up to 'The Little Schemer', this book delves into more advanced functional programming concepts and techniques using Scheme. It continues the question-and-answer format and is suitable for those who want to deepen their understanding after reading the first book. It's more challenging than 'The Little Schemer'.
Provides a comprehensive overview of programming fundamentals, with a focus on functional programming concepts.
Extends the functional language Scheme with logical constructs, bridging the gap between functional and logic programming. It helps functional programmers think logically and logic programmers think functionally. Familiarity with a functional language or the first five chapters of 'The Little Schemer' is assumed.
This German language book provides a comprehensive overview of functional programming, covering both theoretical foundations and practical applications.
As a general overview of programming language concepts and models, this book addresses functional programming as one paradigm among others.
Table of Contents
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser