Skip to content
Dining philosophers task using combinatorial STM built on top of Free monad
C++ QMake Prolog
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app/philosophers_console
src/philosophers
.gitignore
README.md
cpp_philosophers_stm.pro
cpp_philosophers_stm.pro.user

README.md

Philosophers, C++ STM version

This is a showcase project of functional design and functional programming in C++.

Philosophers task is solved using custom combinatorial monadic STM library.

Installation

Run in the project dir:

git clone --branch v0.5 git@github.com:graninas/cpp_stm_free.git ./lib/cpp_stm

Then build with Qt.

Requirements

  • GCC 7.2

See also: Monadic C++ STM

Working library for Software Transactional Memory that is built using several FP techniques.

  • STM is monadic and combinatorial
  • It is very robust due to purely functional design
  • It is built on top of the custom Free monad
  • It operates by custom ADTs
  • It is usable despite it's experimental.

https://github.com/graninas/cpp_stm_free

See also: STM samples

More samples of cpp_stm_free usage.

https://github.com/graninas/stm_samples

See also: Amber

Showcase of functional declarative design in C++.

Game about Amber from The Chronicles of Amber.

https://github.com/graninas/Amber

See also: CMLife

CMLife - another showcase of functional declarative design in C++.

Parallel celullar automata built on top of comonads and std::future used as monad.

https://github.com/graninas/CMLife

You can’t perform that action at this time.