摘要: 一个C++版本的State Monad。 需要C++11。#include template class M> struct Monad { template M ret(A); template M bind(M, std::function(A)>);};template stru... 阅读全文
posted @ 2015-03-11 20:50 wehu 阅读(724) 评论(0) 推荐(0) 编辑
摘要: 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是 * –> *。认识到这... 阅读全文
posted @ 2015-03-11 00:05 wehu 阅读(1299) 评论(0) 推荐(0) 编辑