没有依赖注入的世界:Monad、组合子与错误的自治逻辑
小于 1 分钟
没有依赖注入的世界:Monad、组合子与错误的自治逻辑
“如果一个函数能拥有上下文,它就不再是一个孤立的黑箱,而是一个自治的结构。”
在主流面向对象开发中,依赖注入(Dependency Injection)是一种核心技术,它帮助我们解耦组件、延迟依赖绑定、模拟测试环境。但当我逐步走向函数式编程(尤其是 Haskell 与 Rust)时,我意识到另一种更本质的依赖管理方式:依赖不是注入的,而是组合出来的。
我通过使用monad得出来一个有趣的结论,就是monad是一个组合上下文的工具,而Monad B里面的B则是上下文携带的变量类型,如果将其动起来,那么B的指向就是依赖本身,我们再将其广义起来,上下文组合起来整个fp程序