C++ Functional programming

Open-source C++ projects categorized as Functional programming

Top 13 C++ Functional programming Projects

  • nix

    Nix, the purely functional package manager

    Project mention: Why is the "minimal" official docker nix image over 700M?(`/nix/store` won't free old packages?) | reddit.com/r/NixOS | 2023-03-31

    Is https://github.com/NixOS/nix/blob/master/docker.nix where it is built from? At least the package list matches https://nixos.org/manual/nix/stable/installation/installing-docker.html

  • faust

    Functional programming language for signal processing and sound synthesis (by grame-cncm)

    Project mention: Ask HN: What audio/sound-related OSS projects can I contribute to? | news.ycombinator.com | 2023-03-22

    I heard of https://github.com/grame-cncm/faust a while back, probably via HN. It looks interesting and actively maintained, but I didn’t get a chance to play with it. There are many other libraries listed on GitHub awesome lists such as this one: https://github.com/ad-si/awesome-music-production#libraries

  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • FunctionalPlus

    Functional Programming Library for C++. Write concise and readable C++ code.

    Project mention: C++ algorithm helpers - kdalgorithms | reddit.com/r/cpp | 2022-12-10

    You can get a feel for it on its api search site: as an example, enter these queries:

  • jank

    A Clojure dialect on LLVM with gradual typing, a native runtime, and C++ interop

    Project mention: Janet for Mortals | news.ycombinator.com | 2023-03-31

    I wonder if Jank [1] could be such a Lisp? I haven't played around with it, but I really like the idea and would love to see it get more traction.

    [1]: https://jank-lang.org/

  • lager

    C++ library for value-oriented design using the unidirectional data-flow architecture — Redux for C++

    Project mention: HikoGUI v0.7.0, A fast desktop application GUI library in C++20. (BSL license) | reddit.com/r/cpp | 2022-10-17

    observer: I changed how observer<> works, this is basically a template-class which observes a value and then calls a registered callback on modification. It can now create a sub-observer<> from a member variable of the value it observers. This makes it possible for widgets to be composable. This is based loosely on lager's lenses and cursors.

  • hof

    Higher-order functions for c++ (by boostorg)

    Project mention: Function composition in modern C++ | reddit.com/r/cpp | 2023-03-05

    a prime example of how modern c++ simplified things: “Compose” in hof spans hundreds of lines of code (and needs inclusion of library headers and utilities) https://github.com/boostorg/hof/blob/develop/include/boost/hof/compose.hpp . Just a reminder of what we had to go through very recently to do something that’s now doable in ~15 lines of vanilla C++ . Mad respect for Paul Fultz.

  • rangeless

    c++ LINQ -like library of higher-order functions for data manipulation

  • Sonar

    Write Clean C++ Code. Always.. Sonar helps you commit clean C++ code every time. With over 550 unique rules to find C++ bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.

  • lift

    constexpr C++17 library for simplifying higher order functions in application code (by rollbear)

  • hspp

    hspp: An experimental library to bring Haskell Style Programming to C++.

    Project mention: Chromium accepting Rust in a clear move to copy what Mozilla have done, replace C++ source code | reddit.com/r/cpp | 2023-01-12

    Yeah, C++ supports higher kinded types through template templates (I'm not sure why the other poster said it doesn't), however it quickly becomes messy and impractical. Here's a cursed library that attempts to support Haskell-style programming in C++. Here's an example where they implement a monad transformer using the only example of a template template template that I have ever seen in the wild.

  • egel

    The Egel Programming Language

  • recursive-variant

    Recursive Variant: A simple library for Recursive Variant Types

  • wyvern

    Automatic conversion of call by value into call by need in the LLVM IR. (by lac-dcc)

    Project mention: Lazification of Function Arguments | reddit.com/r/Compilers | 2022-07-01

    For those interested, the code is here: https://github.com/lac-dcc/wyvern

  • libletlib

    C++ framework for the impatient.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-03-31.

C++ Functional programming related posts


What are some of the best open-source Functional programming projects in C++? This list will help you:

Project Stars
1 nix 7,790
2 faust 2,116
3 FunctionalPlus 1,782
4 jank 1,009
5 lager 603
6 hof 488
7 rangeless 184
8 lift 178
9 hspp 141
10 egel 70
11 recursive-variant 66
12 wyvern 44
13 libletlib 9
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives