我又遇到了另一个基本问题。我正在使用 ghci。
我(在帮助下)创建了这个工作代码:
newtype Name = Name String deriving (Show)
newtype Age = Age Int deriving (Show)
newtype Weight = Weight Int deriving (Show)
newtype Person = Person (Name, Age, Weight) deriving (Show)
isAdult :: Person -> Bool
isAdult (Person(_, Age a, _)) = a > 18
但是,当我尝试制作一个更复杂的函数 updateWeight 时会出现问题,该函数允许用户从之前的值更改 Person 的权重。你能指出我哪里出错了吗?
updateWeight :: Person -> Int -> Person
updateWeight (Person(_,_,Weight w) b = (Person(_,_,w+b))