modelli come questo:I modelli aritmetici sono legali Haskell?
front :: [a] -> a
front (x:_) = x
front _ = error "Empty list"
sembrano essere comuni in Haskell, ma distintamente ricordo imparando quanto segue quando ho iniziato a imparare Haskell:
dec :: (Integral a) => a -> a
dec (x+1) = x
dec _ = error "Bottom"
Tuttavia, ghc
sembra respingere quel pezzo di codice , affermando:
Parse error in pattern: x + 1
Mentre hugs
lo accetta bene. Quindi, questo Haskell è valido o no e perché questi compilatori si comportano diversamente.
No, non è valido. –
@ ДМИТРИЙМАЛИКОВ: Allora, perché gli "abbracci" lo accettano? – bitmask
@bitmask Poiché hugs non ha avuto una versione dal 2006, e 'NPlusKPatterns' sono stati rimossi nello standard Haskell2010. –