我正在寻找一些可供学习的开源F#项目.有些东西不是片段,而是完整的项目,它们是F#特征的良好代表(即模式匹配,有区别的联合等).
我的目标主要是看看所有功能如何组合在一起,项目如何组织以及如何从功能角度解决问题.
在编写面向对象的软件时,我经常使用依赖注入:
从较低级别的功能组合高级功能:我的帐户管理服务使用存储库和验证服务,而不是自己实现它们.
将组件与其依赖关系隔离开来:我的帐户管理服务通过接口使用其依赖关系,以便我可以交换实现,模拟单元测试等等.
函数式编程语言中存在哪些模式来实现这些目标?
编辑:一位评论者正确地问:"只是传递圆形函数怎么样?".我认为以下关于函数分组的注释会触及头部 - 服务是一组函数,具有一组共享的依赖关系,我可以将其作为一个原子组来处理.
在Clojure中,似乎协议很好地解决了这个问题,但我真的很想知道问题如何得到更广泛的解决......