Skip to content

graninas/cpp_functional_programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 

Repository files navigation

Functional Programming in C++

List of materials and links about functional programming in C++.

English Materials

Russian Materials

Projects

Misc


English Materials

Books

Articles

Basics

Monads

Design Concepts and Approaches

Papers

Blogs

Talks and Screencasts

Talks

Screencasts

Cources

QA

StackOverflow Questions

Quora Questions


Russian Materials

Articles (Rus)

Basics (Rus)

Monads (Rus)

Design Concepts and Approaches (Rus)

Talks and Screencasts (Rus)

Talks (Rus)


Projects

Libraries

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

Showcase Projects

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

Misc

C++ FP Experts

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.

  • Abel Sinkovics
  • Alexander Granin
  • Anders Schau Knatten
  • Barry Revzin
  • Bartosz Milewski
  • Ben Deane
  • Brian McNamara
  • Bryce Adelstein-Lelbach
  • Chris Weed
  • David Sankel
  • Dennis Kormalev
  • Eric Niebler
  • Evgeny Panasyuk
  • Isabella Muerte
  • Ivan Čukić
  • Jason Rice
  • Jason Turner
  • John Carmack
  • John Wiegley
  • Jonathan Boccara
  • Juan Pedro Bolívar Puente
  • Kevlin Henney
  • Kiryll Shynharow
  • Matthew Might
  • Michał Dominiak
  • Nala Ginrut
  • Nicola Gigante
  • Nicola Bonelli
  • Paul Fultz
  • Phil Nash
  • Rainer Grimm
  • Rasmus Andersson
  • Scott Prager
  • Simon Brand
  • Stuart Golodetz
  • Sumant Tambe
  • Tobias Hermann
  • Toby Allsopp
  • Vicente J. Botet Escribá
  • Vittorio Romeo
  • Wisnu Anggoro
  • Никита Черный aka nikitablack
  • stepic777
  • Олег Фатхиев
  • Павел Кретов
  • Владимир aka tangro
  • Дмитpий Hecтepук
  • Матвей Черевко aka BlackMATov

About

List of materials about functional programming in C++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published