data Nat = Zero | Succ Nat
deriving (Eq, Show)
-- Add two Natural number
addNat :: Nat -> Nat -> Nat
addNat Zero Zero = Zero
addNat Zero n@(Succ _) = n
addNat n@(Succ _) Zero = n
addNat (Succ x) (Succ y) = Succ (Succ (addNat x y))
I am confuse about the @ operator in Haskell function.
I am wondering what does addNat Zero n@(Succ _) = n
means?
Does it mean that addNat Zero Succ b = Succ b
?