Changes between Version 41 and Version 42 of SoC2014


Ignore:
Timestamp:
Feb 17, 2014, 7:07:20 AM (9 years ago)
Author:
viboes
Comment:

updat monads project

Legend:

Unmodified
Added
Removed
Modified
  • SoC2014

    v41 v42  
    158158Monads are invading the C++ planet. optional/maybe, expected/either, future can be seen all as monads. Containers/Sequences are as well monads and in particular smart pointers can be seen as well as monads.
    159159
    160 Having a common interface for all these monads would help to built on top of monads algorithms. E.g. overloading the usual operators.
    161 
    162 The link Monads in C++ [1] show a way to do it that seems interesting.
     160Having a common interface for all these monads would help to built on top of monads algorithms. E.g. overloading the usual operators, operations such as when_all/when_any (see {3}) could be defined for 'compatible' monads.
     161
     162The link Monads in C++ [1] show a way to do it that seems interesting. [2] is a whole library that contains an implementation.
    163163
    164164The project would be implemented on C++11 compilers, using any C++11 feature that could make the library easier to prototype.
    165165
    166 Some performance measures comparing using the higher level monads interface and the hand written solution should be provided.
    167 
    168 Functional programming background is a must as well as understanding Monads in Haskell.
     166Some performance measures comparing the higher level monads interface and the hand written solution should be provided.
     167
     168Functional programming background is a must as well as understanding Monads in Haskell. Some knowledge of template meta-programming in C++ is needed.
    169169 
    170170[1] http://yapb-soc.blogspot.fr/2012/10/monads-in-c.html
     171
     172[2] https://github.com/splinterofchaos/Pure
     173
     174[3] http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n3857.pdf
    171175
    172176In addition to provide the common interface to some of the Boost monads, the project could add the State monad.