你可能无意间写了半个单子

主要观点:通过一个获取 Doohickey 的函数示例,展示了在 C# 中实现类似 Monad 的过程,从最初的简单函数到添加权限检查,再到创建自定义的 Result<T> 类来处理不同状态,包括成功和失败以及权限问题,还介绍了 Then 函数的实现及重载以处理不同情况,最后提到这只是近似 Monad 的实现,实际应用中应使用已有的功能库。
关键信息:

  • 最初的 GetDoohickey 函数及后续的权限检查修改。
  • 创建 Result<T> 类来表示获取结果的多种状态。
  • Then 函数的两种重载及其作用。
  • 实现过程中遇到的类型转换问题及解决方法。
    重要细节:
  • 函数中对 Doohickey 是否存在的处理,从返回 null 到创建新的类型来表示获取结果。
  • 不同功能程序员对代码的不同反应,如虔诚的功能性程序员的赞美和 meme 爱好者的调侃。
  • 提到实际应用中应避免自己编写功能库,而使用已有的功能库如 language-ext。
阅读 15
0 条评论