跳至主要內容
没有依赖注入的世界:Monad、组合子与错误的自治逻辑

没有依赖注入的世界:Monad、组合子与错误的自治逻辑

“如果一个函数能拥有上下文,它就不再是一个孤立的黑箱,而是一个自治的结构。”

在主流面向对象开发中,依赖注入(Dependency Injection)是一种核心技术,它帮助我们解耦组件、延迟依赖绑定、模拟测试环境。但当我逐步走向函数式编程(尤其是 Haskell 与 Rust)时,我意识到另一种更本质的依赖管理方式:依赖不是注入的,而是组合出来的

我通过使用monad得出来一个有趣的结论,就是monad是一个组合上下文的工具,而Monad B里面的B则是上下文携带的变量类型,如果将其动起来,那么B的指向就是依赖本身,我们再将其广义起来,上下文组合起来整个fp程序


Mr.Lexon小于 1 分钟functional-programhaskell
Haskell笔记1

Haskell笔记1

函数1

haskell的函数参数可以分解成这样

subSolution :: Integer -> [(String,Integer)] -> String -> String
subSolution n [] a = a
subSolution n ((k,v):xs) a
  | n == 0 = a
  | n >= v = subSolution res ((k,v):xs) (a++k)
  | otherwise = subSolution n xs a
  where res = n - v

Mr.Lexon大约 3 分钟functional-programfunctional-programhaskell