参考
The F# 4.1 spec
7 Patterns
パターンマッチ部分の構文。一部コメント部を和訳
rule :=
pat pattern-guardopt -> expr -- pattern, optional guard and action
pattern-guard := when expr
pat :=
const -- 定数パターン
long-ident pat-paramopt patopt -- named pattern
_ -- ワイルドカードパターン
pat as ident -- as パターン
pat '|' pat -- disjunctiveパターン
pat '&' pat -- conjunctiveパターン
pat :: pat -- consパターン
pat : type -- pattern with type constraint
pat,...,pat -- タプルパターン
(pat) -- parenthesized pattern
list-pat -- リストパターン
array-pat -- 配列パターン
record-pat -- レコードパターン
:? atomic-type -- dynamic type test pattern
:? atomic-type as ident -- dynamic type test pattern
null -- null-test pattern
attributes pat -- pattern with attributes
list-pat :=
[ ]
[ pat ; ... ; pat ]
array-pat :=
[| |]
[| pat ; ... ; pat |]
record-pat :=
{ field-pat ; ... ; field-pat }
field-pat := long-ident = pat
pat-param :=
| const
| long-ident
| [ pat-param ; ... ; pat-param ]
| ( pat-param, ..., pat-param )
| long-ident pat-param
| pat-param : type
| <@ expr @>
| <@@ expr @@>
| null
pats := pat , ... , pat
field-pats := field-pat ; ... ; field-pat
rules := '|'opt rule '|' ... '|' rule