The (only possible) unit value in F# is written as
()
So your code becomes
...
| None -> ()
Pergunta
How can i return unit
from an expression in f#? For example:
let readInt =
let str = Console.ReadLine()
let (succ, num) = Int32.TryParse(str)
match succ with
| true -> Some(num)
| _ -> None
match readInt with
| Some(v) -> Console.WriteLine(v)
| None -> ignore //i don't want to do anything,
// but i don't know how to ignore this brunch of the expression
Solução
The (only possible) unit value in F# is written as
()
So your code becomes
...
| None -> ()
Outras dicas
Just write ()
as follows
match readInt with
| Some(v) -> Console.WriteLine(v)
| None -> ()
Keep in mind the unit value ()
, it is handy in many situations.
In this case, you could use iter
function from Option module:
Option.iter Console.WriteLine readInt
It also highlights the fact that iter
functions (e.g. those from Seq
, List
and Array
module) will always give you the unit value ()
.