gpt4 book ai didi

haskell - 记录构造函数的语法

转载 作者:行者123 更新时间:2023-12-01 10:51:57 26 4
gpt4 key购买 nike

我想知道为什么这行得通

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]

我该如何解决?

最佳答案

虽然构造函数的作用通常类似于柯里化(Currying)函数,因此您可以像在第一个示例中那样部分应用它们,但记录语法构造想要构造一个完整的记录,并且没有遗漏任何字段。

但是,如果您想命名字段,可以使用 lambda:

map (\age -> PersonContructor {firstName="firstName1", lastName="lastName1", age=age}) [666, 999]

关于haskell - 记录构造函数的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18142668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com