Introduction

In this article I will explain the Pattern Matching features of Match expressions and the Constant Pattern Matching in a F# console application.

Pattern Matching

A match statement is a control statement in which a variable is to be tested for equality against a list of values. Each Switch section contains a number of cases to execute the specific case from the list. In the match expression, each pattern is examined in turn to see if the input data is compatible with the pattern. If a match is found then the statement is executed, otherwise the next pattern is to be tested.

The following is the syntax for pattern matching:

match expression with

| pattern1->output

| pattern2->output

|pattern3>-output

|---------------------

|---------------------

| _->default

"match" and "with" are keywords. Each rule of the match is represented by "|" followed by an arrow "->". For example, "| pattern1 -> result" meaning that if the pattern is matched (the condition is true) then return the result. ( _ ) denotes the default pattern.

Features Match Expression

The following are the features of a Match Expression:

Constant Pattern Matching

At runtime input is compared with the constant pattern, such a numeric, character, string constants. If an input value is matched with the constant pattern then the corresponding value is returned.

Now I will show you an example of Constant Pattern Patching in a Console Application. Use the following procedure to create the sample.

Step 1:

Open Visual Studio then select "Create New Project" --> "F# Console Application".

CreateApplication

Step 2:

Use the following code for Constant Pattern Matching in the F# application.

open System

System.Console.Title<-"Display Month Name"

System.Console.ForegroundColor<-ConsoleColor.Blue

System.Console.BackgroundColor<-ConsoleColor.White

printfn "Enter a month number(1-12):"

let intmonth=Convert.ToInt32(System.Console.ReadLine())

System.Console.Clear()

match intmonth with

| 1 ->printfn "January(31 days)"

| 2 ->printfn "Febrary(28/29 days)"

| 3 ->printfn "March(31 days)"

| 4 ->printfn "April(30 days)"

| 5 ->printfn "May(31 days)"

| 6 ->printfn "June(30 days)"

| 7 ->printfn "July(31 days)"

| 8 ->printfn "August(31 days)"

| 9 ->printfn "September(30 days)"

| 10 ->printfn "October(31 days)"

| 11 ->printfn "November(30 days)"

| 12->printfn "December(31 days)"

| _ ->printfn "Invalid input"

System.Console.ReadKey(true)

Step 3 :

Debug the application by pressing F5 and the result from the console application will be as in the following figure:

AfterDebug

Step 4 :

Enter a month number in the range 1-12. Suppose you entered 4, then the output will be as in the following figure:

EnterMonthNumber

Output

DisplayMonth

Step 5 :

Suppose you entered an incorrect month number, then the output will be as in the following figure:

InvalidMonth

Output

InvalidInput

Summary

This article has explained Pattern Matching, the features of Match expression and the Constant Pattern Matching in a F# console application.