1
dreamersdw 2011 年 10 月 21 日
Monad 是一种设计模式,如果遇到问题 X 请使用方法 Y
如果返回值有可能为空,使用 Maybe Monad 如果返值可能有零个也可能有多个,使用 List Monad 如果要读取全局信息, 使用 Reader Monad 如果要在执行过程中记录些什么,使用 Writer Monad 如果想读取又修改某些东西,使用 State Monad ...... 我们完全可以弃这些 Monad 不用,而手工处理各种情况,只是那样的话,代码会变得冗长繁琐。 即使是 IO 操作也不必非得依赖 Monad。源自 Haskell 的 clean 语言使用 uniqueness typing system 技术实现 IO |
2
cloud_dai 2011 年 11 月 8 日
任何的模式都是为解决一类问题,Monad也是。 就是computational context,
先理解value, type, typeclass 及一点闭包的概念。 然后从Functor-> Applicative Functor -> Monad去理解学习。 具体类容多。 这个探索的路径。 我会写个这个方面的总结blog(现在连blog都没有)的。 |
3
wshcdr 2019 年 5 月 24 日
抛开那些理论,你可以把 monad 理解成是一个 Context
看下这个例子 Just 2 >>= (\x -> Just(x + 1)) 帮助你理解 |