摘要:
一个C++版本的State Monad。 需要C++11。#include template class M> struct Monad { template M ret(A); template M bind(M, std::function(A)>);};template stru... 阅读全文
摘要:
Scala有很强的类型系统。加上一些隐式规则,我们可以在scala里模拟haskell的monad。 先从haskell的monad type class开始: class Monad M where ret :: a -> M a bind :: M a -> (b -> M b) -> M b
这里M是type class的参数。它是一个高阶类型, kind是 * –> *。认识到这... 阅读全文