Patrones como este:¿Los patrones aritméticos son legales Haskell?
front :: [a] -> a
front (x:_) = x
front _ = error "Empty list"
parecen ser comunes en Haskell, pero claramente recuerdo haber aprendido lo siguiente cuando empecé a aprender Haskell:
dec :: (Integral a) => a -> a
dec (x+1) = x
dec _ = error "Bottom"
Sin embargo, ghc
parece rechazar ese trozo de código , indicando:
Parse error in pattern: x + 1
Mientras que hugs
lo acepta bien. Entonces, ¿es válido o no Haskell y por qué estos compiladores se comportan de manera diferente?
No, no es válido. –
@ ДМИТРИЙМАЛИКОВ: Entonces, ¿por qué 'abrazos' lo acepta? – bitmask
@bitmask Porque abrazos no ha tenido un lanzamiento desde 2006, y 'NPlusKPatterns' se eliminaron en el estándar Haskell2010. –