パターン

ワイルドカードパターン

_

あらゆる値にマッチします。

変数パターン

変数名

あらゆる値にマッチし、マッチした値に名前を付けます。

整数パターン

整数値

指定した整数値と等しい場合はパターンマッチに成功し、 そうでない場合は失敗します。

浮動小数点数パターン

浮動小数点数

指定した浮動小数点数値と等しい場合はパターンマッチに成功し、 そうでない場合は失敗します。

文字列パターン

"文字列"

指定した文字列値と等しい場合はパターンマッチに成功し、 そうでない場合は失敗します。

文字パターン

'文字'

指定した文字値と等しい場合はパターンマッチに成功し、 そうでない場合は失敗します。

真偽値パターン

true

または

false

指定した真偽値と等しい場合はパターンマッチに成功し、 そうでない場合は失敗します。

ユニットパターン

()

値が()の場合に成功します。失敗することはありません。

ユーザ定義タグパターン

~タグ
~タグ(引数パターン, ...)

指定したユーザ定義タグの場合はパターンマッチに成功し、 そうでない場合は失敗します。 引数がある場合はそれぞれの引数とパターンマッチさせます。

コンスパターン

パターン1 :: パターン2

リストの先頭をパターン1にリストの先頭以外をパターン2にマッチさせます。

リストパターン

[パターン1, パターン2, ...]

リストにマッチします。マッチさせる値と長さが異なる場合は 失敗します。

タプルパターン

(パターン1, パターン2, ...)

タプルにマッチします。

asパターン

パターン as 変数名

パターンにマッチした値に変数名でアクセスできるようにします。

orパターン

パターン1 | パターン2

パターン1とパターン2のいずれかでマッチするときに成功します。

型強制パターン

(パターン : 型)

パターンが指定した型を持つことを指定します。