List of materials and links about functional programming in C++.
Bartosz Milewski talks
Eric Niebler talks
Ivan Čukić talks
Juan Pedro Bolívar Puente talks
Phil Nash talks
David Sankel talks
Practical Functional Programming in C++, Bryce Adelstein-Lelbach, CppCon, 2014
Applying functional programming in code design, Michał Dominiak, CppCon, 2015
Functional Programming in C++, Nicola Gigante, Meeting C++ 2015
Functional programming: functors and monads, Michał Dominiak, CppCon, 2015
Goodbye metaprogramming, and hello functional, Paul Fultz, 2016
Functional C++, Kevlin Henney, BUILD STUFF, 2017
Functional Programming Tools in C++, Sumant Tambe, SF Bay Area ACCU, 2017
constexpr ALL the Things! (Combinatorial parsers), Ben Deane, Jason Turner, CppCon, 2017
What Could Possibly Go Wrong?: A Tale of Expectations and Exceptions, Simon Brand, Phil Nash, CppCon, 2018
Generalized Full Duplex Messaging, Jason Rice, C++ Now, 2018
Эволюция метапрограммирования: как правильно работать со списками типов, Олег Фатхиев, C++ Siberia 2019
Элементы функционального программирования в современном С++, Павел Кретов, DataArt Online
Alexander Granin talks
| Library | Description | Author |
|---|---|---|
| Boost.Hana | Boost.Hana is a library with concepts borrowed from category theory | ? |
| optional | C++11/14/17 std::optional with functional-style extensions and reference support | Simon Brand |
| expected | C++11/14/17 std::expected with functional-style extensions | Simon Brand |
| FTL | C++ template library for fans of functional programming | beark |
| LIBF++ | C++ as a Pure Functional Programming Language | GJDuck |
| Immer | Postmodern immutable and persistent data structures for C++ | Juan Pedro Bolívar Puente |
| Lager | Library for functional interactive C++ programs // Redux for C++ | Juan Pedro Bolívar Puente |
| cpp_stm_free | Composable monadic STM for C++ on Free monads | Alexander Granin |
| Cat | Cat: C++14/17 functional library | Nicola Bonelli |
| neither | A functional implementation of Either in C++14. | LoopPerfect |
| FunctionalPlus | Functional Programming Library for C++. Write concise and readable C++ code. | Tobias Hermann |
| Immutable++ | Persistent immutable data structures providing practically O(1) for appends, updates and lookups based on work by Rich Hickey and by consequence Phil Bagwell. | Rasmus Andersson |
| Okasaki | Functional data structures in C++ | Bartosz Milewski |
| Asyncro | Monadic Futures | Dennis Kormalev |
| Cefal | (Concepts-enabled) Functional Abstraction Layer for C++ | Dennis Kormalev |
| Project | Description | Author |
|---|---|---|
| Ewig | A mini-emacs built using C++ in a functional way, using the Redux architecture. Supports efficiently editing huge file and concurrent loading/saving | Juan Pedro Bolívar Puente |
| Amber | The 'Amber' game project demonstranting functional and declarative design in C++. | Alexander Granin |
| cpp_lenses | Functional lenses demo in C++ | Alexander Granin |
| CMLife | Functional Game of Life in C++. Based on functional declarative design and functional idioms (comonads, zippers etc.) | Alexander Granin |
| coroutine_monad | Using coroutines for monadic composition | Toby Allsopp |
| Monadic parsing in C++ | Monadic parsers | Scott Prager |
| monad_do | Emulation of DO syntax sugar for monads in C++ | Evgeny Panasyuk |
| kari.hpp | Experimental library for currying in C++14 | Matvey Cherevko |
| Lambda.cpp | Lambdas PoC implementation | Matthew Might |
| Knuth's arrow notation | Implemented in two variants: constexpr functions and templates | Alexander Granin |
| Constexpr monadic parsers ("Constexpr all the things") | See also the talk "Constexpr all the things". | Ben Deane, Jason Turner |
| cpp_parsec_free | Monadic parsers (based on Free monads) | Alexander Granin |
The list of authors of the materials presented here, listed alphabetically. (Some authors can be missing by occasion).
Please, pm me if you don't want to be in this list. Or if you want to be there.
267 followers · starred Feb 2022
417 followers · starred Jul 2021
1,990 followers · starred May 2019
22 followers · starred Dec 2021
List of materials and links about functional programming in C++.
Bartosz Milewski talks
Eric Niebler talks
Ivan Čukić talks
Juan Pedro Bolívar Puente talks
Phil Nash talks
David Sankel talks
Practical Functional Programming in C++, Bryce Adelstein-Lelbach, CppCon, 2014
Applying functional programming in code design, Michał Dominiak, CppCon, 2015
Functional Programming in C++, Nicola Gigante, Meeting C++ 2015
Functional programming: functors and monads, Michał Dominiak, CppCon, 2015
Goodbye metaprogramming, and hello functional, Paul Fultz, 2016
Functional C++, Kevlin Henney, BUILD STUFF, 2017
Functional Programming Tools in C++, Sumant Tambe, SF Bay Area ACCU, 2017
constexpr ALL the Things! (Combinatorial parsers), Ben Deane, Jason Turner, CppCon, 2017
What Could Possibly Go Wrong?: A Tale of Expectations and Exceptions, Simon Brand, Phil Nash, CppCon, 2018
Generalized Full Duplex Messaging, Jason Rice, C++ Now, 2018
Эволюция метапрограммирования: как правильно работать со списками типов, Олег Фатхиев, C++ Siberia 2019
Элементы функционального программирования в современном С++, Павел Кретов, DataArt Online
Alexander Granin talks
| Library | Description | Author |
|---|---|---|
| Boost.Hana | Boost.Hana is a library with concepts borrowed from category theory | ? |
| optional | C++11/14/17 std::optional with functional-style extensions and reference support | Simon Brand |
| expected | C++11/14/17 std::expected with functional-style extensions | Simon Brand |
| FTL | C++ template library for fans of functional programming | beark |
| LIBF++ | C++ as a Pure Functional Programming Language | GJDuck |
| Immer | Postmodern immutable and persistent data structures for C++ | Juan Pedro Bolívar Puente |
| Lager | Library for functional interactive C++ programs // Redux for C++ | Juan Pedro Bolívar Puente |
| cpp_stm_free | Composable monadic STM for C++ on Free monads | Alexander Granin |
| Cat | Cat: C++14/17 functional library | Nicola Bonelli |
| neither | A functional implementation of Either in C++14. | LoopPerfect |
| FunctionalPlus | Functional Programming Library for C++. Write concise and readable C++ code. | Tobias Hermann |
| Immutable++ | Persistent immutable data structures providing practically O(1) for appends, updates and lookups based on work by Rich Hickey and by consequence Phil Bagwell. | Rasmus Andersson |
| Okasaki | Functional data structures in C++ | Bartosz Milewski |
| Asyncro | Monadic Futures | Dennis Kormalev |
| Cefal | (Concepts-enabled) Functional Abstraction Layer for C++ | Dennis Kormalev |
| Project | Description | Author |
|---|---|---|
| Ewig | A mini-emacs built using C++ in a functional way, using the Redux architecture. Supports efficiently editing huge file and concurrent loading/saving | Juan Pedro Bolívar Puente |
| Amber | The 'Amber' game project demonstranting functional and declarative design in C++. | Alexander Granin |
| cpp_lenses | Functional lenses demo in C++ | Alexander Granin |
| CMLife | Functional Game of Life in C++. Based on functional declarative design and functional idioms (comonads, zippers etc.) | Alexander Granin |
| coroutine_monad | Using coroutines for monadic composition | Toby Allsopp |
| Monadic parsing in C++ | Monadic parsers | Scott Prager |
| monad_do | Emulation of DO syntax sugar for monads in C++ | Evgeny Panasyuk |
| kari.hpp | Experimental library for currying in C++14 | Matvey Cherevko |
| Lambda.cpp | Lambdas PoC implementation | Matthew Might |
| Knuth's arrow notation | Implemented in two variants: constexpr functions and templates | Alexander Granin |
| Constexpr monadic parsers ("Constexpr all the things") | See also the talk "Constexpr all the things". | Ben Deane, Jason Turner |
| cpp_parsec_free | Monadic parsers (based on Free monads) | Alexander Granin |
The list of authors of the materials presented here, listed alphabetically. (Some authors can be missing by occasion).
Please, pm me if you don't want to be in this list. Or if you want to be there.
267 followers · starred Feb 2022
417 followers · starred Jul 2021
1,990 followers · starred May 2019
22 followers · starred Dec 2021