ぱたーんまっちんぐ
.... | pattern1 when cond -> body | pattern2 when cond -> body ....
では、
- pattern1にマッチ
- condをテスト → 失敗
- pattern2にマッチ
- condをテスト → OK
- bodyの評価
となる。
.... | pattern1 | pattern2 when cond -> body ....
では、同じ入力に対して
- 「pattern1かpattern2」のうちpattern1にマッチ
- condをテスト → 失敗
- パターンマッチ失敗
となる。
全然違ってた。
こういう部分では、インデントや改行に迷ってしまう。