-
Book Overview & Buying
-
Table Of Contents
F# 4.0 Design Patterns
By :
At this point, I believe you would agree that pattern matching is a powerful data transformation feature. Just to further amplify the facilities considered so far, F# offers enhancing pattern-expressions with additional matching logic. Guard is represented by an arbitrary boolean expression that is attached to pattern-expression using the when keyword. The guard kicks in only if its pattern-expression host has matched. Then, the guard expression is computed, and if true, it springs the transformation performed by the corresponding result-expression to the right. Otherwise, the entire rule is considered non matched, and the matching continues in an usual manner. The when guards can be mixed and matched within a match construction in a completely arbitrary manner.
To demonstrate when guards in action, let me slightly modify the previous example. In the case where both keys are not empty, there are two subcases: when the keys are equal to each other and when they are not. Furthermore...
Change the font size
Change margin width
Change background colour