irrefutable Pattern(不可反駁パターン)とは…?
先日の勉強会で irrefutable patternが出てきたのでメモ。
仮引数のような必ず照合が成功するようなパターンのことを不可反駁 ( irrefutable )パターンといいます。反対に可反駁 ( refutable )パターンは照合が成功しない可能性があります。上であげた contrived の例はこの可反駁パターンの例です。不可反駁パターンには 3 つの種類があります。そのうち 2 つを紹介しましょう。
やさしい Haskell 入門 ( Version 98 ) sec.4 Case 式とパターン照合
- irrefutable pattern
- as-pattern
- f s@(x:xs) = x:s
- s は全体(x:xs)って事ですかね。
- wildcard-pattern
- 「入門Haskell」P.69 に載ってました。
- lazy-pattern
- client init ~(resp:resps) = init : client (next resp) resps
- ~(チルダ)で irrefutable になるのですね。
- as-pattern
本当の本当にメモです。最近、体が怠くて眠いので後回し。