我想知道为什么会这样做
data Person = PersonContructor {
firstName :: String,
lastName :: String,
age :: Int
} deriving (Show)
main = putStrLn $ show $ map (PersonContructor "firstName1" "lastName1") [666, 999]
这并不是
data Person = PersonContructor {
firstName :: String,
lastName :: String,
age :: Int
} deriving (Show)
main = putStrLn $ show $ map (PersonContructor {firstName="firstName1", lastName="lastName1"}) [666, 999]
我该如何解决?
答案 0 :(得分:6)
虽然构造函数通常像curried函数一样,所以你可以像在第一个例子中那样部分地应用它们,记录语法构造想要构建一个没有字段的完整记录。
如果您想为字段命名,可以使用lambda:
map (\age -> PersonContructor {firstName="firstName1", lastName="lastName1", age=age}) [666, 999]