gpt4 book ai didi

haskell - 在 `newtype` 参数中指定元组

转载 作者:行者123 更新时间:2023-12-04 21:52:14 26 4
gpt4 key购买 nike

Learn You a Haskell讨论 newtype .

它的签名如何Pair b a意味着传入的参数必须是一个元组?

ghci> newtype Pair b a = Pair { getPair :: (a, b) }
ghci> let p = Pair (5, 10)

我很困惑 b a表示一个元组。

最佳答案

传入元组的原因不在类型中,而在其构造函数中:

Pair { getPair :: (a, b) }

这是使用 record syntax定义一个 Pair具有单个字段的构造函数,名为 getPair ,其中包含一个元组。通过将其分成两部分,您可以获得非常相似的效果:
newtype Pair b a = Pair (a, b)

getPair (Pair (x, y)) = (x, y)

所以 b a不强制它是一个元组;这就是 { getPair :: (a, b) }做。

关于haskell - 在 `newtype` 参数中指定元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25049285/

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