Mar*_*ann 14
惯用F#根本没有空值,那么它有什么用?在F#中,模拟缺少值的最常用方法是使用option.
当我需要与可能返回的.NET代码进行互操作时null,我会尽快将其转换为选项,使用如下函数:
let toOption (x : obj) =
match x with
| null -> None
| _ -> Some x
Run Code Online (Sandbox Code Playgroud)
只要你有你的价值建模为一个option,你可以用如撰写它Option.map,而有异曲同工之妙(但更好,更安全),比提议的C#运算符.
在函数式语言中,条件/组合遍历,特别是在嵌套结构中,通常使用镜头的概念进行建模,这在 SO 线程中用一个简洁的示例进行了解释。
在F#环境中,有Aether;请参阅介绍文章和指南,该文章基于Mauricio Scheffer在FSharpx中开发和撰写的 Lenses 支持(此处) 。