The Art of Functional Programming
$14.99
Minimum price
$19.99
Suggested price

The Art of Functional Programming

About the Book

Welcome to The Art of Functional Programming book!

Functional programming is a powerful and elegant programming paradigm. Initially only popular among university researchers, it’s gained much traction in the software industry in the last few years. From big companies to start-ups, engineers and managers have realized that functional programming excels at abstraction and composition. Functional programming allows for highly concise solutions with increased safety. This has led to rising demand for software engineers with functional programming skills. This book will help you move your programming skills to the next level.

There are tons of programming languages, frameworks, and tools out there - with many more coming in the future. The only way to stay ahead of the game in this vast and quickly changing software industry is to master the fundamentals and principles that cut across programming languages, frameworks, and tools. In the case of functional programming, learning to adopt the functional way of solving problems is much more productive than memorizing how to write functional code in a particular language. This book teaches this functional way of thinking. We’ll also learn many fundamental techniques from programming languages, such as parsing, compilation, and type checking.

We’ll also look at examples and exercises that are typically encountered in a programmer’s day-to-day job. Furthermore, an entire chapter is dedicated to applying what we’ve learned to real-world scenarios. In particular, we’ll use functional programming to process collections of data for an e-commerce application and handle the JSON datatype.

Here is the summary of the chapters in this book:

* In Chapter 1: Introduction, we’ll start the book with an introduction to functional programming. In particular, we’ll see how it can overcome some of the inherent weaknesses of the imperative programming paradigm. We’ll also discuss why functional programming matters to any software engineer.

* In Chapter 2: Expressions - The Building Blocks of Functional Programs, we examine expressions and how to build complex expressions from simpler ones. Three aspects of expressions - syntax, types, and semantics - will be covered. Along the way, we’ll gain a much deeper understanding of how programming languages work, including parsing, type checking, interpretation, and compilation.

* In Chapter 3: Building Abstractions with Functions, we’ll get to know lambda calculus - a mathematical model serving as the foundation of all functional programming languages. We’ll learn how to capture computation patterns as functions. Finally, we’ll discuss various techniques for working with functions such as currying, recursion, and higher-order functions.

* In Chapter 4: Complex Data Types, we’ll focus on the complex data types typically found in functional programming languages, such as tuples and lists. Furthermore, we’ll use algebraic data types to represent hierarchical data and pattern matching to extract data from complex data types.

* In Chapter 5: Common Computation Patterns, we’ll dive into some of the most common computation patterns, such as map, filter, fold, and zip. These functions capture highly general computation patterns on lists and other data structures that can be reused to formulate many other functions.

* In Chapter 6: Dataflow Programming with Functions, we’ll go over dataflow programming, a programming paradigm that emphasizes composing programs from existing components. We’ll learn how functional programming allows us to do dataflow programming elegantly and reap all its benefits.

* In Chapter 7: Applying Functional Programming to Various Domains, we’ll apply what we've learned to process collections of data commonly found in mobile and web applications and backend services. Furthermore, we’ll use functional programming to represent and handle JSON. 

  • Share this book

  • Categories

    • Computers and Programming
    • Functional Programming
    • Haskell
    • Java
  • Feedback

    Email the Author(s)

About the Author

Minh Quang Tran, PhD
Minh Quang Tran, PhD

Minh Quang Tran has more than 20 years of experience studying software development and working in the software industry. He has worked in various tech startups and big software companies in Europe. He received his M.Sc. in Computer Science from McMaster University,  Canada, and his Ph.D. in Computer Science from Technical University of Berlin, Germany. His interest lies in understanding and mastering the fundamentals and principles that cut across programming languages, frameworks, and tools.

The Leanpub 60-day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms

Do Well. Do Good.

Authors have earned$12,151,660writing, publishing and selling on Leanpub, earning 80% royalties while saving up to 25 million pounds of CO2 and up to 46,000 trees.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub