Sé que no se mantienen en las coincidencias de patrones (es decir, necesita volver a escribir la cláusula 'dónde' para cada patrón), pero ¿cómo funciona el alcance para los guardias?En Haskell, ¿cuál es el alcance de una cláusula where cuando se trata de guardias?
p. Ej. ¿Esto funciona?
myFunction x1 x2
| x1 > x2 = addOne x1
| x1 < x2 = addOne x2
| otherwise = x1
where addOne = (1+)
¿O debería ser esto?
myFunction x1 x2
| x1 > x2 = addOne x1
where addOne = (1+)
| x1 < x2 = addOne x2
where addOne = (1+)
| otherwise = x1