8.16.0.1
3.7 Monad(单子)
3.7.1 Monad定义
Monad接口。
最小实现monad:bind。
procedure
(monad:bind f ma) → Monad?
f : (-> a Monad?) ma : Monad?
即>>=。
是否gen:Monad实例。
3.7.2 Monad操作
Examples:
Examples:
3.7.3 Monad的do记法
syntax
(monad/do 表达式 ...+)
表达式 = 普通表达式 | 赋值表达式 | 中断表达式 | 副作用表达式 赋值表达式 =
| (let id = expr) | (id <- expr) 中断表达式 =
| (break 任意值) 副作用表达式 =
| (! 表达式 ...+)