gpt4 book ai didi

haskell - Haskell 中数据类型和值构造函数使用相同的名称很常见吗?

转载 作者:行者123 更新时间:2023-12-02 09:14:42 26 4
gpt4 key购买 nike

查看以下代码:

data Point = Point Float Float deriving (Show)  
data Shape = Circle Point Float | Rectangle Point Point deriving (Show)

摘自《Learn you a Haskell for Great Good》一书,该代码示例附带以下文本:

Notice that when defining a point, we used the same name for the data type and the value constructor. This has no special meaning, although it's common to use the same name as the type if there's only one value constructor.

现在我的假设是 data Point = ... 是数据类型,... = Point Float... 是值构造函数。

我的问题是:Haskell 中的数据类型和值构造函数使用相同的名称是否常见?

最佳答案

根据我有限的经验:是的。这也是有道理的。为什么在这里要以不同的方式调用 Point ?它完美地描述了数据类型,并且也可以清楚地用于像这样的模式匹配

myFunc :: Point -> Bool
myFunc (Point 0 0) = True
myFunc _ = False

它是明确的,因为您只能将数据类型放入函数的类型签名中。

关于haskell - Haskell 中数据类型和值构造函数使用相同的名称很常见吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37917584/

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