Guards

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 ...

Get F# 4.0 Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.