主要观点:通过一个获取 Doohickey 的函数示例,展示了在 C# 中实现类似 Monad 的过程,从最初的简单函数到添加权限检查,再到创建自定义的 Result<T> 类来处理不同状态,包括成功和失败以及权限问题,还介绍了 Then 函数的实现及重载以处理不同情况,最后提到这只是近似 Monad 的实现,实际应用中应使用已有的功能库。
关键信息:
- 最初的 GetDoohickey 函数及后续的权限检查修改。
- 创建 Result<T> 类来表示获取结果的多种状态。
- Then 函数的两种重载及其作用。
- 实现过程中遇到的类型转换问题及解决方法。
重要细节: - 函数中对 Doohickey 是否存在的处理,从返回 null 到创建新的类型来表示获取结果。
- 不同功能程序员对代码的不同反应,如虔诚的功能性程序员的赞美和 meme 爱好者的调侃。
- 提到实际应用中应避免自己编写功能库,而使用已有的功能库如 language-ext。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。