Skip to content

A powerful yet lightweight C++17 functional tuple implementation

License

Notifications You must be signed in to change notification settings

rodriados/supertuple

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SuperTuple

license MIT version dev

A powerful yet lightweight C++17 tuple implementation for functional-programming.

Motivation

As a functional-programming enthusiast, specially for Haskell, I've always found it fascinating how some algorithms can be programmed in such a descripitive way and yet be extremely performant. Not only so, it has always bothered me how some solutions may look very clean when developed in a functional paradigm, whereas quite clumsy otherwise.

This project implements new tuple types, in opposition to std::tuple, with the focus of creating tuples that are memory-equivalent to a struct containing the same types, in addition to functional operations that operate over them.

This library does not intend to implement or enable a full functional-programming experience in C++, but to allow specific solutions to be abstracted with descriptive and clean code.

Install

The library does not have any dependencies other than a C++17-compiler to be installed on your system. As a header-only library, you may as well directly download or copy the files into your own project or clone it following the steps below:

git clone https://github.com/rodriados/supertuple

Usage

To use the project, you can copy source files into your own project or install it on your system and then reference it in your code:

#include <supertuple.hpp>