函数式编程进阶 (Advanced Functional Programming) Scala 函数式编程进阶 (Advanced Functional Programming) 1. Monad Monad 是函数式编程中一个非常重要的概念,它提供了一种组合函数的方式,这些函数会产生带有上下文的值。 Monad 允许我们将副作用(例如异常、null 值、I/O 操作)封装起来,并以一种可控的方式处理它们。 1.1 Monad 的定义 一个类型 要成为 Monad,必须满足以下三个条件(符合 Monad Laws): return (unit): 一个函数,接受一个类型为 的值,并返回一个类型为 的 Monad 实例。在 Scala 中,通常用 方法实现。