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.