• Stars
    star
    627
  • Rank 69,325 (Top 2 %)
  • Language
  • Created over 5 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

List of materials about functional programming in C++

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

More Repositories

1

software-design-in-haskell

Software Design in Haskell. A structured set of materials. How to build real-world applications in Haskell.
Haskell
1,034
star
2

Functional-Design-and-Architecture

Code and materials for my book "Functional Design and Architecture"
Haskell
466
star
3

The-Voids-Of-Haskell

241
star
4

functional-declarative-design-methodology

Article: Functional Declarative Design
192
star
5

Hydra

Hydra is a full-fledged framework for building web services, multithreaded and concurrent applications with SQL and KV DB support.
Haskell
176
star
6

hierarchical-free-monads-the-most-developed-approach-in-haskell

Big article about Hierarchical Free Monads, the most developed approach to build real software in Haskell
Haskell
151
star
7

automatic-whitebox-testing-showcase

Automatic white-box testing with Free monads: approach description and showcase
Haskell
82
star
8

Andromeda

Haskell
69
star
9

cpp_stm_free

Composable monadic STM for C++ on Free monads
C++
58
star
10

Pragmatic-Type-Level-Design

Code and materials for my book "Pragmatic Type Level Design"
Haskell
53
star
11

stm-free

STM on Free monads
Haskell
23
star
12

Haskell-Algorithms

Learning Haskell: algorithms, data structures, mini-programs, materials, excercises
HTML
16
star
13

The-Amoeba-World

The Amoeba World game
Haskell
13
star
14

pointed-validation

Validation using pointed getters with error path tracking.
Haskell
13
star
15

GraphServer

GraphServer for Haskell code visualization
Haskell
12
star
16

software-engeneering-python

Python
11
star
17

cpp_lenses

Functional lenses on C++ (highly experimental).
C++
11
star
18

Zeplrog

Experimental Rogue-like Zero Player game in Haskell and gloss
Haskell
10
star
19

cpp_parsec_free

Monadic parsers library
C++
8
star
20

Amber

This is a showcase project of the functional design on C++.
C++
7
star
21

cpp_philosophers_stm

Dining philosophers task using combinatorial STM built on top of Free monad
C++
7
star
22

Adv2Game

Advanced Adventure Game on Haskell
Haskell
7
star
23

hinteractive

Engine for interactive fiction games like Zork.
Haskell
7
star
24

zio-free

Free monadic clone (Haskell ) of Scala's ZIO, experimental
Haskell
5
star
25

Quest-Tutorial-Code

Quest Tutorial Code for Haskell Quest Tutorial articles
Haskell
4
star
26

transition-graph

Transition Graph eDSL
Haskell
4
star
27

cpp_final_tagless

C++
3
star
28

ICFPC2011

Code and Materials for ICFPC2011
Haskell
2
star
29

gt-money

Money library (showcase of type safe approaches)
Haskell
2
star
30

ICFPC2011-Monads

Second code variant using monad State, monad transformer and special data types (incomplete)
Haskell
2
star
31

ICFPC-2012-Hackaton

Repository for attenders of ICFPC-2012 hackaton at Jan 2015, Novosibirsk
Haskell
2
star
32

MetaLife

Haskell
2
star
33

CMLife

Functional Game of Life on C++. Uses functional declarative design and functional idioms (comonads, zippers etc.)
C++
2
star
34

stm-frp

Haskell
2
star
35

PureScript-Algorithms

Sandbox for PureScript test apps
PureScript
1
star
36

cpp_functional_core

Core library for functional programming on C++ (lenses, monads, etc.)
C++
1
star
37

QST

C++
1
star
38

BigSpace-obsolete

This repository was an attempt to create good project structure on Haskell. Now it is obsolete. (See The-Amoeba-World instead).
Haskell
1
star
39

ICFPC2007

Partial implementation of Endo's morphing - training due to ICFPC 2014 is coming.
Haskell
1
star
40

haskell-exercises

Haskell
1
star
41

BigSpace-Documentation

Design documents, concept art
1
star
42

yellow-stone

Experiments
Haskell
1
star
43

TestEcho

Erlang
1
star