Wildcard matching
If I put the preceding scripts into Visual Studio, the F# source code editor will draw a blue warning squiggle line under the ``compare me``
comparison expression, indicating that the set of rules in this match
construction is not exhaustive, as shown in the following screenshot:
The compiler even gives a sample value of ``compare me``
, which is not going to match. Although this value is not present within the definition of type Multiples
, if I synthetically create this value as enum<Multiples>(1)
and feed it as an argument into transformB
, the result would be the run-time exception of type Microsoft.FSharp.Core.MatchFailureException
. This situation should raise the following question: how would it be possible to put a match all rule into the match
, which means anything that was not specified in preceding rules?
For this purpose, F# offers the special wildcard pattern
_
that matches anything that was not matched in the preceding...