首页 > 解决方案 > 使用 Language-ext 在 C# 中进行函数式编程

问题描述

我最近开始研究一个新的 DotNet Core 项目。我注意到有人(开发人员)在这个项目中使用了 Language-Ext 库。这对我来说是一个新事物,所以我知道它适用于函数式编程。对我来说理解它是很混乱的。我用谷歌搜索并发现了它的好处(函数式编程):

  1. 少代码(要点)
  2. 更容易调试
  3. 更容易测试

对于 OO 程序员来说,函数式编程是完全不同的。所以,我的问题是我们真的需要在 C# 中使用 Language-Ext(函数式编程)吗?我还缺少其他好处吗?

标签: c#functional-programminglanguage-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 或 ...)


推荐阅读