bfpg / 2012-04-functional-cpp

Immutable data, algebraic types and functional programming in C++

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Functional C++

A library for functional programming in C++, including support for immutable algebraic data types.

About

Functional C++ was initially developed for a talk given at the Brisbane Functional Programming Group. Slides for the talk are available in the doc directory.

The library is in the very early stages of development. For now, it just contains a strict, boxed sum type, a strict, unboxed optional-value type, basic pattern-matching, and some simple examples.

In time, I hope to include better pattern matching, lazy evaluation, a selection of immutable data structures, useful higher-order abstractions, QuickCheck-style testing, and documentation.

Requirements

Functional C++ is a C++11 library, so you'll need a recent C++ compiler, building in C++11 mode. I am using GCC 4.7.0, with g++ -std=c++11. There are no library dependencies other than the C++11 standard library.

Currently, it is an include-only library, so you just need to ensure your compiler can find the files in the include directory.

License

Copyright © Matthew Brecknell 2012. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.txt or a copy at boost.org.)

About

Immutable data, algebraic types and functional programming in C++

License:Boost Software License 1.0