パターン一覧

パターン一覧 F#2.0
	参考
		The F# 2.0 Language Specification April 2010(candidate)
			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