mpc
Haskell-like feature supports in C++
|
#include <class.hpp>
Classes | |
struct | closure |
Public Member Functions | |
constexpr auto | operator() () const noexcept(noexcept(mpc::state< ST >(closure{}))) -> decltype(mpc::state< ST >(closure{})) |
state :: (s -> (a, s)) -> m a state f = do s <- get let ~(a, s') = f s put s' return a gets :: m s gets = state (s -> (s, s))