Skip to content

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

License

Notifications You must be signed in to change notification settings

brecknell/functional-cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published