Changes between Version 41 and Version 42 of SoC2014
- Timestamp:
- Feb 17, 2014, 7:07:20 AM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoC2014
v41 v42 158 158 Monads 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. 159 159 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. 160 Having 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 162 The link Monads in C++ [1] show a way to do it that seems interesting. [2] is a whole library that contains an implementation. 163 163 164 164 The project would be implemented on C++11 compilers, using any C++11 feature that could make the library easier to prototype. 165 165 166 Some performance measures comparing usingthe 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. 166 Some performance measures comparing 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. Some knowledge of template meta-programming in C++ is needed. 169 169 170 170 [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 171 175 172 176 In addition to provide the common interface to some of the Boost monads, the project could add the State monad.