Now that the C# 6 is finally going to have this long-anticipated ?. operator, is there similar thing in F#? And I\'m not talking about ? operator.
You can lift your nullable into option first. And then you can use an option computation expression to achieve the same thing.
In functional languages, conditional / compositional traversal, especial in nested structures is generally modelled using the notion of lenses which is explained with a succinct example in this SO thread.
In the F# environment, there's Aether; see intro article and guide, which builds on the Lenses support developed and written about by Mauricio Scheffer in FSharpx here.
Idiomatic F# doesn't have null values at all, so what use would it be? In F#, the most common way to model the absence of a value is to use option
.
When I need to interoperate with .NET code that may return null
, I convert it to an option as soon as possible, using a function like this:
let toOption (x : obj) =
match x with
| null -> None
| _ -> Some x
As soon as you have your value modelled as an option
, you can compose it with e.g. Option.map, and that serves the same purpose (but better, and safer) than the proposed C# operator.