It's an interesting approach. Your Then constructor maps to my Bind object more naturally than >>= does.
The main reason for using objects rather than functions (closures) in C++ is that the compiler may be able to optimize/inline more code. Closures are not first class citizens in C++ -- they cannot be returned from functions or stored in variables without being converted to clunky std::function. BTW, I'm studying your reactive banana library trying to learn more about FRP. --Bartosz On Thursday, June 21, 2012 9:21:34 AM UTC-7, Heinrich Apfelmus wrote: > > Bartosz Milewski wrote: > > I published a blog for C++ programmers about the advantages of using the > > continuation monad in dealing with asynchronous API, concurrency, and > > parallelism. I explained the concepts in Haskell and the translated them > > into C++. > > http://fpcomplete.com/asynchronous-api-in-c-and-the-continuation-monad/ > > I always found the continuation monad to be hard to understand. An > easier yet equivalent approach is presented in my "Operational Monad > Tutorial" [1]. > > [1]: http://themonadreader.wordpress.com/2010/01/26/issue-15/ > [2]: http://www.haskell.org/haskellwiki/Operational > > > Best regards, > Heinrich Apfelmus > > -- > http://apfelmus.nfshost.com > > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe