Functional Programming in C++
Ivan Cukic
- 320 pages
- English
- ePUB (mobile friendly)
- Available on iOS & Android
Functional Programming in C++
Ivan Cukic
About This Book
Summary Functional Programming in C++ teaches developers the practical side of functional programming and the tools that C++ provides to develop software in the functional style. This in-depth guide is full of useful diagrams that help you understand FP concepts and begin to think functionally.Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology Well-written code is easier to test and reuse, simpler to parallelize, and less error prone. Mastering the functional style of programming can help you tackle the demands of modern apps and will lead to simpler expression of complex program logic, graceful error handling, and elegant concurrency. C++ supports FP with templates, lambdas, and other core language features, along with many parts of the STL. About the Book Functional Programming in C++ helps you unleash the functional side of your brain, as you gain a powerful new perspective on C++ coding. You'll discover dozens of examples, diagrams, and illustrations that break down the functional concepts you can apply in C++, including lazy evaluation, function objects and invokables, algebraic data types, and more. As you read, you'll match FP techniques with practical scenarios where they offer the most benefit. What's inside
- Writing safer code with no performance penalties
- Explicitly handling errors through the type system
- Extending C++ with new control structures
- Composing tasks with DSLs
About the Reader Written for developers with two or more years of experience coding in C++. About the Author Ivan ?uki? is a core developer at KDE and has been coding in C++ since 1998. He teaches modern C++ and functional programming at the Faculty of Mathematics at the University of Belgrade. Table of Contents
- Introduction to functional programming
- Getting started with functional programming
- Function objects
- Creating new functions from the old ones
- Purity: Avoiding mutable state
- Lazy evaluation
- Ranges
- Functional data structures
- Algebraic data types and pattern matching
- Monads
- Template metaprogramming
- Functional design for concurrent systems
- Testing and debugging
Frequently asked questions
Information
1
Introduction to functional programming
- Understanding functional programming
- Thinking about intent instead of algorithm steps
- Understanding pure functions
- Benefits of functional programming
- C++âs evolution into a functional programming language
for
and while
loops and if-then-else
branching. That was the approach most of us took, just to be able to pass the exam and never look back.1.1 What is functional programming?
Functional programming is a style of programming that emphasizes the evaluation of expressions, rather than execution of commands. The expressions in these languages are formed by using functions to combine basic values. A functional language is a language that supports and encourages programming in a functional style.âFAQ for comp.lang.functional
1.1.1 Relationship with object-oriented programming
for
loop (sometimes called foreach
), it had to be implemented in every C++ compiler (and there are many of them). Using FP techniques, it was possible to do this without changing the compiler. Many third-party libraries implemented their own versions of the range-based for
loop over the years. When we use FP idiom...