moduleRandom=openSystemletprivater=newRandom()letcoinToss=fun_->r.Next(0,2)letprintNumbersn=matchn%2=0with|true->printfn"Even nr. %i"n|false->printfn"Odd nr. %i"nletprintNumbers'n=//Missed"else"statementisfoundatruntimeifn%2=0thenprintfn"Even nr. %i"nList.init10(Random.coinToss)|>List.iterprintNumbersList.init10(Random.coinToss)|>List.iterprintNumbers'
Code output:
>
module Random = begin
val private r : System.Random
val coinToss : 'a -> int
end
val printNumbers : n:int -> unit
val printNumbers' : n:int -> unit
> Even nr. 0
Odd nr. 1
Even nr. 0
Odd nr. 1
Even nr. 0
Odd nr. 1
Even nr. 0
Even nr. 0
Odd nr. 1
Odd nr. 1
val it : unit = ()
> Even nr. 0
Even nr. 0
Even nr. 0
Even nr. 0
Even nr. 0
val it : unit = ()
Code Snippet:
1
2
3
4
5
6
7
letprintNumbers''n=//Missed"false"matchisfoundatcompile-timematchn%2=0with|true->printfn"Even nr. %i"nList.init10(Random.coinToss)|>List.iterprintNumbers''
Code output:
>
/Users/mon/tmp/conditionalexpressionsVSpatternmatch.fsx(22,9): error FS0025: Incomplete pattern matches on this expression. For example, the value 'false' may indicate a case not covered by the pattern(s).