パターンマッチでは成り立たない(つまり、パターンごとに 'where'句を書き直す必要がある)ことはわかっていますが、ガードのスコープはどのように機能しますか?ハスケルでは、ガードを扱うときのwhere句の範囲は何ですか?
これは機能しますか?
myFunction x1 x2
| x1 > x2 = addOne x1
| x1 < x2 = addOne x2
| otherwise = x1
where addOne = (1+)
これはこれでしょうか?
myFunction x1 x2
| x1 > x2 = addOne x1
where addOne = (1+)
| x1 < x2 = addOne x2
where addOne = (1+)
| otherwise = x1