Named patterns

The F# compiler performs a certain analysis when a name (identifier) occurs in the position of a pattern case. Strictly speaking, there are some opportunities for the name to be as follows:

  • A named literal (such as THREE in the earlier script)
  • A case value of a discriminated union (such as None if matching an F# option)
  • A type of an exception (such as System.ArgumentException if matching an exception type)
  • A custom name of an active pattern (which will be covered in the upcoming chapters)

If the name occurrence does not fit any of the previously listed alternatives, the name is considered a variable pattern (https://msdn.microsoft.com/en-us/library/dd547125.aspx ). It is treated similarly to the wildcard pattern, getting the value of ...

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.