c# - 使用 Language-ext 在 C# 中进行函数式编程
问题描述
我最近开始研究一个新的 DotNet Core 项目。我注意到有人(开发人员)在这个项目中使用了 Language-Ext 库。这对我来说是一个新事物,所以我知道它适用于函数式编程。对我来说理解它是很混乱的。我用谷歌搜索并发现了它的好处(函数式编程):
- 少代码(要点)
- 更容易调试
- 更容易测试
对于 OO 程序员来说,函数式编程是完全不同的。所以,我的问题是我们真的需要在 C# 中使用 Language-Ext(函数式编程)吗?我还缺少其他好处吗?
解决方案
所以,我的问题是我们真的需要在 C# 中使用 Language-Ext(函数式编程)吗?
如果您想在 C# 中进行函数式编程,则不需要 LanguageExt,但 IMO 这是此用例的最佳库。
我还缺少其他好处吗?
我有偏见,因为我使用 LanguageExt 已经有几年了,它是我最喜欢的库。如果我在没有这个库的情况下创建/编辑 C# 项目,感觉有点像使用古老的 C# 版本。
还有什么好处?
- 摆脱(许多1)错误
- 摆脱许多样板代码
- 不可变数据类型
- 避免副作用(更容易并行处理)
- 更容易重构
- 更多类型安全
- 可以与非 FP C# 代码结合使用(在有用的地方使用)
- 更好的重构技能(换个角度)
LanguageExt 创建者 Paul Louth 做了一个很好的介绍,展示了一些好处: https ://github.com/louthy/language-ext
这个库现在有更多的特性,如果你进入这个(和函数式编程)你会发现很多宝石。
(前提是您想继续使用 C#——而不是使用 F# 或 Haskell 或 ...)
推荐阅读
- javascript - document.querySelector reading only 1 class
- android - 翻译动画部分的屏幕变为空白
- .htaccess - 需要为 uri 后端添加基本身份验证,但需要排除一些 uri
- mysql - 错误 1005 (HY000): 无法创建表 'people.googlea' (errno: 150)
- c# - 起订量:FileNotFoundException:无法加载文件或程序集“System.Runtime”
- javascript - Highcharts 限制将在 yAxis 上的类别中显示的项目数量
- azure - POST JSON 以将事件记录到 Application Insights
- postgresql - 如何从postgresql中表的更改列的结果中查询
- c++ - 如何避免此 C++ 代码中的算术异常?
- php - laravel中的redis问题