パターン
ワイルドカードパターン
_
あらゆる値にマッチします。
変数パターン
変数名
あらゆる値にマッチし、マッチした値に名前を付けます。
整数パターン
整数値
指定した整数値と等しい場合はパターンマッチに成功し、 そうでない場合は失敗します。
浮動小数点数パターン
浮動小数点数
指定した浮動小数点数値と等しい場合はパターンマッチに成功し、 そうでない場合は失敗します。
文字列パターン
"文字列"
指定した文字列値と等しい場合はパターンマッチに成功し、 そうでない場合は失敗します。
文字パターン
'文字'
指定した文字値と等しい場合はパターンマッチに成功し、 そうでない場合は失敗します。
真偽値パターン
true
または
false
指定した真偽値と等しい場合はパターンマッチに成功し、 そうでない場合は失敗します。
ユニットパターン
()
値が()
の場合に成功します。失敗することはありません。
ユーザ定義タグパターン
~タグ
~タグ(引数パターン, ...)
指定したユーザ定義タグの場合はパターンマッチに成功し、 そうでない場合は失敗します。 引数がある場合はそれぞれの引数とパターンマッチさせます。
コンスパターン
パターン1 :: パターン2
リストの先頭をパターン1にリストの先頭以外をパターン2にマッチさせます。
リストパターン
[パターン1, パターン2, ...]
リストにマッチします。マッチさせる値と長さが異なる場合は 失敗します。
タプルパターン
(パターン1, パターン2, ...)
タプルにマッチします。
asパターン
パターン as 変数名
パターンにマッチした値に変数名でアクセスできるようにします。
orパターン
パターン1 | パターン2
パターン1とパターン2のいずれかでマッチするときに成功します。
型強制パターン
(パターン : 型)
パターンが指定した型を持つことを指定します。